参考资料

  1. 如何设置Nginx的SSL/TLS加密?
  2. Nginx GitLab(配置归档工具)配置详细说明以及案例
  3. Nginx日志分析工具(ELK)配置详细说明以及案例
  4. Nginx expires、etag、if_modified_since:客户端缓存控制详细说明以及案例
  5. NginxHTTP2模块配置详细说明以及案例
  6. Jenkins安装与配置详细说明以及案例
  7. Tengine编译安装详细说明以及案例
  8. nginx的用法

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端口)