Nginx反向代理多外贸站点独立域名配置指南

为什么需要Nginx反向代理管理外贸站点

做外贸的朋友经常遇到一个问题:一台服务器上跑了多个业务(比如Shopify独立站、外贸CRM、邮件营销工具),每个业务都要绑定自己的域名。
直接让每个服务监听80或443端口不现实,因为端口有限且容易冲突。
Nginx反向代理就是最佳方案——它作为统一入口,根据域名把请求转发到不同的后端服务,每个站点绑定独立域名,互不干扰。

本文会带你在CentOS/Debian上完成配置,所有步骤都经过验证,直接复制命令就能用。

配置前需要确认的事项

动手之前请确保以下三点已经就绪:

  • Nginx已安装并正常运行:检查 nginx -vsystemctl status nginx
  • 域名已解析到服务器IP:每个站点的A记录都指向同一个公网IP。
  • 后端服务已经启动:例如端口3000、4000、5000上的Web应用,用 curl http://127.0.0.1:3000 确认能访问。

如果用的是HTTPS,提前准备SSL证书(可以用Let's Encrypt免费签发,后面配置时再加)。

为每个站点添加独立server块

Nginx的配置通常放在 /etc/nginx/conf.d//etc/nginx/sites-available/
为了方便管理,每个域名创建一个独立文件。

假设你有两个站点:

  • siteA.com → 后端127.0.0.1:3000
  • siteB.com → 后端127.0.0.1:4000

创建第一个配置文件:

vim /etc/nginx/conf.d/siteA.conf

写入以下内容(HTTP版本,不带SSL):

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

    location / {
        proxy_pass http://127.0.0.1:3000;
        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;
    }
}

同理创建 siteB.conf

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

    location / {
        proxy_pass http://127.0.0.1:4000;
        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;
    }
}

关键点proxy_set_header Host $host 保证了后端能正确识别原始域名;
如果后端依赖客户端真实IP(比如外贸CRM统计),必须加上后面几行。

配置完成后测试语法:

nginx -t

如果提示 syntax is ok,重新加载Nginx:

systemctl reload nginx

(或者 nginx -s reload

配置完别忘了检查这几个细节

很多新手卡在以下环节,提前留意能省很多排错时间:

  • 防火墙放行端口:如果后端服务在其他端口,Nginx和客户端之间只走80/443,但Nginx到后端需要确保服务器内部网络通(一般没问题)。检查 firewall-cmd --list-allufw status
  • 域名解析生效:执行 dig siteA.com +short 看返回IP是否正确。
  • 日志定位错误:如果访问出错,先看 /var/log/nginx/error.log。常见错误是“upstream prematurely closed connection” —— 往往是后端服务没启动或挂了。
  • HTTPS配置(可选):用 certbot --nginx -d siteA.com 自动签发证书并改写配置,非常方便。注意同一个IP上多个域名都能配HTTPS,Nginx会根据server_name选择对应证书。
  • 避免location / 冲突:如果后端有子路径需求,可以写更具体的location,例如 location /api/ { proxy_pass ... }

如何确认反向代理生效

最简单的方法是用curl测试:

curl -H "Host: siteA.com" http://你的服务器IP

如果返回了后端站点的首页内容(而不是Nginx默认页面),说明配置生效。

更彻底的方法是加上 -v 参数查看响应头:

curl -v http://你的服务器IP -H "Host: siteA.com"

在返回信息里能看到 Server: nginx 以及后端服务返回的内容。

你也可以直接通过浏览器访问域名(记得先确保DNS生效)。
打开 http://siteA.com,如果看到你的外贸站点内容,大功告成。

高频问题与排错思路

Q:执行 nginx -t 报错 server_name 重复?
A:检查是否一个文件里写了两个server块监听同一个端口且server_name相同。每个域名单独一个文件,避免冲突。

Q:访问域名显示Nginx欢迎页?
A:说明请求没有被转发到后端。检查proxy_pass里的地址和端口是否正确,确认后端服务正在监听。可以 curl http://127.0.0.1:3000 测试。

Q:出现502 Bad Gateway?
A:Nginx无法连接到后端。可能原因:后端服务挂了、端口写错、或者后端监听的是127.0.0.1但Nginx proxy_pass用了localhost(解析到IPv6)。建议全部用127.0.0.1。

Q:需要同时支持HTTP和HTTPS怎么办?
A:在server块里增加listen 443 ssl; 并配置证书路径。或者用certbot自动管理。

当你按上述步骤完成配置后,一台服务器就能同时服务多个外贸站点,每个站点使用独立域名,访问互不影响。
后续如果有新增站点,只需仿照添加配置文件并reload即可。

分享到:
上一篇
数据库备份恢复乱码统一字符集修复教程
下一篇
服务器访问黑白名单批量添加删除脚本
1
系统公告

机房迁移升级通知

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