Nginx 反向代理部署多项目的方案
一台服务器跑多个 Java 项目,Nginx 按域名分流是最省心的方案。
手里有几台服务器不多,多个项目往往挤在同一台机器上。用 Nginx 做反向代理,按域名把请求分到不同项目,是个人开发者最常用的方案。
整体思路
每个项目监听不同的本地端口(8080、8081、8082……),Nginx 监听 80/443 端口,根据域名把请求转发到对应端口。
配置示例
server {
listen 80;
server_name www.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
WebSocket 的坑
如果项目用到 WebSocket,Nginx 默认不会转发升级请求,需要额外加三行配置,否则会报 400 错误。
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";