Nginx反向代理多外贸站点独立隔离配置教程

如果你同时运营多个外贸站点,又想在同一台服务器上部署,最怕出现站点配置混乱、互相干扰的情况。
使用 Nginx 反向代理为每个站点独立配置,既能节省成本,又能做到逻辑隔离。
本文全程用最直白的步骤,带你从零设置好这套方案。

上手前准备好这三样东西

  1. 一台 Linux 服务器(本文以 CentOS 7 / Ubuntu 20.04 为例),已安装 Nginx。如果还没装,执行 sudo apt install nginx(Ubuntu)或 sudo yum install nginx(CentOS)。
  2. 两个以上外贸站点的域名(例如 example1.com 和 example2.com),并已将 A 记录解析到本服务器公网 IP。
  3. 每个站点后端服务的运行地址和端口(比如 127.0.0.1:3001 和 127.0.0.1:3002),确保后端已正常启动。

为每个站点单独创建 Nginx 配置文件

Nginx 的站点配置通常放在 /etc/nginx/sites-available/ 目录,然后通过软链接启用。
每个外贸站点独立一个文件,互不干扰。

第一步:进入配置文件目录

cd /etc/nginx/sites-available/

第二步:创建第一个站点的配置文件(例如 example1.com.conf)

sudo nano example1.com.conf

填入以下基础反向代理配置(注意替换域名和后端地址):

server {
    listen 80;
    server_name example1.com www.example1.com;

    location / {
        proxy_pass http://127.0.0.1:3001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

第三步:
同样方法创建第二个站点配置文件
(例如 example2.com.conf),
server_name 改为 example2.com,proxy_pass 指向其对应的后端端口(如 3002)。

第四步:启用站点配置

# 创建软链接到 sites-enabled 目录
sudo ln -s /etc/nginx/sites-available/example1.com.conf /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/example2.com.conf /etc/nginx/sites-enabled/

第五步:检查语法并重载 Nginx

sudo nginx -t
# 如果输出 syntax is ok,执行重载
sudo systemctl reload nginx

需要留意的关键参数说明

  • server_name:务必绑定你自己的域名,否则 Nginx 可能把请求转发到错误的站点。多个域名之间用空格隔开。
  • proxy_pass:后端服务地址必须写完整,结尾是否有斜杠会影响路径处理。一般建议写成 http://IP:端口 不加斜杠,这样 Nginx 会原封不动传递 URI。
  • proxy_set_header 这几行用于传递客户端真实 IP 和协议,避免后端应用拿到错误的来源。如果后端是 HTTPS 环境,还要额外添加 X-Forwarded-Proto

常见报错和避坑指南

502 Bad Gateway:通常是后端服务未启动或端口写错。检查后端进程是否运行,并确认 proxy_pass 里的地址可访问。
404 或路径不对:检查 location 块中的 proxy_pass 是否带斜杠。如果需要保留原始 URI,不要加斜杠;如果希望重写路径,可以通过 rewrite 指令处理。
站点访问错乱(请求跑到别的站点):最常见原因是 server_name 写错或重复。使用 sudo nginx -T 可以列出所有虚拟主机配置,检查是否有冲突。另外,如果两个站点都监听 80 端口但 server_name 没有匹配,Nginx 会使用默认站点(通常是第一个启用的)。建议在 sites-available 中只保留你需要的站点,并确保每个域名唯一。
SSL 证书问题:若站点要求 HTTPS,需要在配置中加入 SSL 监听和证书路径。推荐使用 Certbot 免费证书,配置类似于:

server {
    listen 443 ssl;
    server_name example1.com;
    ssl_certificate /etc/letsencrypt/live/example1.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example1.com/privkey.pem;
    # ... 其余 proxy_pass 配置同上
}
server {
    listen 80;
    server_name example1.com;
    return 301 https://$host$request_uri;
}

验证站点隔离是否真正生效

  1. 访问测试:分别用浏览器访问 http://example1.comhttp://example2.com,确认显示内容来自各自的后端服务。
  2. 停用一个站点后端:手动停止其中一个后端进程(例如 kill 进程ID),再访问对应站点应返回 502,而另一个站点仍正常。这说明配置隔离有效。
  3. 查看 Nginx 日志:如果遇到异常,执行 sudo tail -f /var/log/nginx/error.log,通常能直接定位到错误原因。

如果你按以上步骤操作,多个外贸站点就能在同一台服务器上和平共处。
遇到问题时,优先回顾“常见报错”小节,基本能解决大部分新手困惑。

分享到:
上一篇
Ollama远程访问FRP内网穿透完整配置步骤
下一篇
大模型推理服务器散热降噪改造实操完整方案
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意