参考资料

  1. Nginx如何用于反向代理?
  2. 如何查看要查看 Nginx 默认配置文件路径
  3. nginx 查看配置文件
  4. Nginx集群配置管理详细说明以及案例
  5. 如何设置nginx高级安全配置
  6. Nginx镜像模块:ngx_http_mirror_modu详细说明以及案例le
  7. 检测Nginx配置文件 nginx -t
  8. Nginxlimit_conn:并发连接数限制模块详细说明以及案例

Nginx在Web开发中的应用

Nginx在Web开发中的应用

  1. 反向代理

    • 将客户端请求转发到后端服务器

    • 配置示例:

      server {
          listen 80;
          server_name example.com;
          
          location / {
              proxy_pass http://localhost:3000;
              proxy_set_header Host $host;
          }
      }
  2. 负载均衡

    • 分配流量到多个服务器

    • 配置示例:

      upstream backend {
          server backend1.example.com;
          server backend2.example.com;
      }
      
      server {
          location / {
              proxy_pass http://backend;
          }
      }
  3. 静态文件服务

    • 高效提供静态资源

    • 配置示例:

      server {
          location /static/ {
              alias /var/www/static/;
              expires 30d;
          }
      }
  4. SSL/TLS终止

    • 处理HTTPS连接

    • 配置示例:

      server {
          listen 443 ssl;
          ssl_certificate /path/to/cert.pem;
          ssl_certificate_key /path/to/key.pem;
      }
  5. URL重写

    • 修改请求URL

    • 配置示例:

      location /old/ {
          rewrite ^/old/(.*)$ /new/$1 permanent;
      }
  6. 缓存

    • 缓存代理内容

    • 配置示例:

      proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m;
      
      location / {
          proxy_cache my_cache;
          proxy_pass http://backend;
      }
  7. 访问控制

    • 限制IP访问

    • 配置示例:

      location /admin/ {
          allow 192.168.1.0/24;
          deny all;
      }
  8. Gzip压缩

    • 减小传输文件大小

    • 配置示例:

      gzip on;
      gzip_types text/plain application/json;
  9. 虚拟主机

    • 单服务器托管多个网站

    • 配置示例:

      server {
          server_name site1.com;
          root /var/www/site1;
      }
      
      server {
          server_name site2.com;
          root /var/www/site2;
      }
  10. WebSocket支持

    • 代理WebSocket连接

    • 配置示例:

      location /ws/ {
          proxy_pass http://backend;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "upgrade";
      }