Nginx 反向代理入门:一台服务器挂多个网站

服务器上跑了博客、面板、几个小工具?用 Nginx 反代按域名分发,一台机器对外就是一个整洁的入口。

基础写法

server {
    listen 443 ssl;
    server_name app.example.com;
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

WebSocket 支持

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

常见坑

  1. 忘了传 Host 头,应用路由判断出错
  2. client_max_body_size 太小,上传大文件报 413
  3. HTTPS 在 Nginx 终结,后端应用要用 X-Forwarded-Proto 判断协议

相关文章