← 返回心得列表

Nginx 反向代理部署多项目的方案

2026-08-30 运维
一台服务器跑多个 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";