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

为什么多个外贸站需要独立反向代理

不少外贸站长用一台服务器托管多个独立站点,如果共用同一个Nginx反向代理配置,很容易出现跨站Cookie泄漏、SSL证书混乱、后端服务端口冲突等连锁问题。独立配置的核心思路:每个站点拥有专属的server块,分别指定域名、证书和后端地址。
这样改一个站点不会影响其他站点,排查故障时也更清晰。

动手前的环境检查清单

开始配置前,请确认以下条件已经满足:

  • Nginx已安装并正常运行:执行 nginx -v 查看版本,用 systemctl status nginx 确认服务状态。
  • 域名解析生效:每个外贸站点对应的域名(例如 site1.com、site2.com)都已解析到服务器IP,可用 ping 或 dig 验证。
  • SSL证书准备:本教程以Let's Encrypt免费证书为例,使用Certbot申请。如果已持有其他证书,记得准备好证书文件和密钥文件的路径。
  • 后端服务已启动:每个站点对应的后端程序(如Java应用、Python Flask、Node.js等)已运行在本地不同端口(比如 3001、3002、3003),并且可以从本机正常访问。
如果不确定后端服务端口,可以用 curl http://127.0.0.1:端口号 测试是否能返回数据。

一步步为每个站点添加独立的反向代理配置

Nginx的配置通常放在 /etc/nginx/sites-available/ 目录下(或直接写在 nginx.conf 的 http 块内)。
推荐按站点创建独立的文件,方便管理。

  1. 为第一个站点创建配置文件:
   sudo nano /etc/nginx/sites-available/site1.com.conf

粘贴以下基础配置(请将 your-domain.com 替换为实际域名,3001 替换为后端端口):

   server {
       listen 80;
       server_name site1.com www.site1.com;
       return 301 https://$server_name$request_uri;
   }

   server {
       listen 443 ssl http2;
       server_name site1.com www.site1.com;

       ssl_certificate /etc/letsencrypt/live/site1.com/fullchain.pem;
       ssl_certificate_key /etc/letsencrypt/live/site1.com/privkey.pem;

       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;
       }
   }

保存退出。

  1. 创建第二个、第三个站点的配置文件:

使用同一个模板,修改 server_name、ssl证书路径、proxy_pass端口即可。
例如第二个站点使用 3002 端口。

  1. 启用所有站点:

对每个配置文件建立软链接到 sites-enabled 目录:

   sudo ln -s /etc/nginx/sites-available/site1.com.conf /etc/nginx/sites-enabled/
   sudo ln -s /etc/nginx/sites-available/site2.com.conf /etc/nginx/sites-enabled/
  1. 测试配置并重载Nginx:
   sudo nginx -t   # 检查语法
   sudo systemctl reload nginx   # 使配置生效

配置完成后最容易踩的3个坑

  • Host头未正确传递:如果后端应用依赖 Host 头判断域名,忘记加入 proxy_set_header Host $host; 会导致站点内部跳转到错误域名。检查方法:在Nginx配置中确认每个server块的location内都包含上述头设置。
  • SSL证书绑定错误:将 site1.com 的证书写在 site2 的server块里,浏览器会提示证书不匹配。强制检查:用 openssl s_client -connect your-domain.com:443 -servername your-domain.com 查看证书Common Name。
  • 端口冲突:如果两个后端服务意外使用了同一个端口,反向代理会转发到相同进程。预防:启动后端时指定不同端口,并记录在笔记本上。

用curl和浏览器验证每站独立生效

  1. 命令行验证:
   curl -I https://site1.com   # 检查返回的HTTP头,应看到200或301(如果有重定向)
   curl -I https://site2.com

注意观察 Server 字段是否为 nginx,以及 Location 是否正确。

  1. 浏览器测试:清空缓存后逐个访问各站点,确认页面内容正确,SSL证书锁正常(无告警)。
  2. 验证隔离性:把 site1 暂定后端服务,此时访问 site1 应显示502或拒绝连接,而 site2 完全不受影响。

如果你正在处理Nginx反向代理多外贸站点独立配置,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。
配置完成后,还可以考虑使用Nginx的 upstream 模块做负载均衡,或结合Fail2Ban增强安全性,在后续教程中我会逐一介绍。

分享到:
上一篇
Ollama远程访问FRP内网穿透配置教程
下一篇
大模型推理服务器散热降噪改造方案:从硬件选型到操作全流程
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意