参考资料

  1. Nginx如何支持高并发?
  2. Nginx的基本配置文件结构
  3. nginx 配置跨域
  4. Nginx请求频率限制模块详细说明以及案例
  5. Nginx expires、etag、if_modified_since:客户端缓存控制详细说明以及案例
  6. Nginx 基于SSL的TCP代理服务器详细说明以及案例
  7. Nginxindex:首页处理模块详细说明以及案例
  8. Jenkins安装与配置详细说明以及案例

Nginx如何支持动态内容?

Nginx支持动态内容主要通过反向代理和FastCGI两种方式实现:

  1. 反向代理方式(以Node.js为例):

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://localhost:3000; # 后端应用服务器地址
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
  1. FastCGI方式(以PHP为例):

server {
    listen 80;
    server_name example.com;

    root /var/www/html;
    index index.php;

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
  1. 其他动态语言支持:

  • Python (uWSGI):

location / {
    include uwsgi_params;
    uwsgi_pass unix:/tmp/uwsgi.sock;
}
  • Ruby (Passenger):

passenger_enabled on;
passenger_ruby /usr/bin/ruby;

关键配置说明:

  1. proxy_pass:将请求转发到后端应用服务器

  2. fastcgi_pass:通过FastCGI协议与PHP处理器通信

  3. uwsgi_pass:与Python应用服务器通信

  4. 需要确保Nginx能访问到后端服务(通过socket或TCP端口)