Nginx反向代理多跨境站点配置详解

不少做跨境业务的朋友都会遇到一个场景:手上有几个面向不同国家的网站(比如美国站、欧洲站、东南亚站),但不想为每个站点都买一台服务器。
这时用 Nginx 反向代理就能把多个后端服务通过不同域名或路径映射到同一台服务器上,既省钱又方便管理。
下面我会从零开始,带你把 Nginx 反向代理多跨境站点的配置跑通。

配置前需要准备好的东西

开始操作前,确认你有以下权限或资源:

  • 一台安装了 Nginx 的 Linux 服务器(CentOS 7+/Ubuntu 20.04+ 均可)。如果还没装,执行 sudo apt install nginx(Ubuntu)或 sudo yum install nginx(CentOS)完成安装。
  • 两个或以上的域名(例如 us.example.comeu.example.com),并已解析到服务器 IP。
  • 后端服务已经跑在指定端口上(比如本地的 3000、4000 端口,或者在其他服务器的公网 IP 上)。
  • 对 Nginx 的配置文件位置有基础了解:主配置文件一般在 /etc/nginx/nginx.conf,站点配置文件建议放在 /etc/nginx/conf.d/ 目录下,方便管理。

配置反向代理的核心步骤

Nginx 反向代理多跨境站点最常用的方法就是为每个域名单独写一个 server block。
下面以两个站点为例:

  1. 创建站点配置文件
   sudo nano /etc/nginx/conf.d/us.conf

粘贴以下内容(把 server_nameproxy_pass 改成你自己的域名和后端地址):

   server {
       listen 80;
       server_name us.example.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;
       }
   }

同样创建欧洲站的配置文件:

   sudo nano /etc/nginx/conf.d/eu.conf

内容类似,只是 server_name 和 proxy_pass 换成 eu.example.comhttp://127.0.0.1:4000

  1. 检查配置并重载 Nginx
   sudo nginx -t
   sudo systemctl reload nginx

如果返回 test is successful,说明语法正确。
现在用浏览器访问 http://us.example.com 就能看到后端 3000 端口的内容,http://eu.example.com 对应 4000 端口。

  1. (可选)添加 SSL 证书(推荐使用 Let's Encrypt)

如果所有站点共用同一台服务器,可以给每个域名单独申请证书,也可以使用通配符证书。
安装 Certbot 后执行:

   sudo certbot --nginx -d us.example.com -d eu.example.com

Certbot 会自动修改 Nginx 配置并启用 HTTPS。
注意如果域名分布在不同国家,要确保 DNS 解析正确,否则证书申请可能失败。

这些坑你可能也会遇到

  • 502 Bad Gateway:最常见的原因是后端服务没有启动,或者 proxy_pass 写的地址不对。先检查后端是否运行:curl http://127.0.0.1:3000,如果能返回数据,再检查 Nginx 的 error log:tail -f /var/log/nginx/error.log
  • SSL 证书冲突:如果多个 server block 共用同一个 IP 但使用不同证书,必须为每个域名单独配置 ssl_certificate 和 ssl_certificate_key,Nginx 会根据 SNI 自动选择。记得在 listen 443 ssl 中加上 ssl
  • 路径转发踩坑:如果后端应用不期望子路径,比如你在 proxy_pass 里加了路径(如 http://127.0.0.1:3000/api),则 location 里尽量不要用正则捕获组,否则可能产生路径拼接错误。简单场景建议保持 proxy_pass 后面不加子路径,或使用 proxy_pass http://backend; 加上 proxy_set_header Host $host;
  • 跨境网络延迟高:如果后端服务器在国外,可以考虑启用 Nginx 缓存或使用 CDN 中间层。但要注意缓存会占用磁盘,记得限制 proxy_cache_path 的大小。

验证你的代理是否正常

配置完成后,做几个简单的验证:

  1. 域名解析验证nslookup us.example.com 返回的 IP 就是你服务器的 IP。
  2. 端口连通性:从本地 curl 你的域名:curl -I http://us.example.com,观察返回的 HTTP 状态码(200 或 301 正常,502 需排查)。
  3. 后端日志确认:查看后端应用的访问日志,确认请求来源 IP 是 Nginx 服务器(注意 X-Real-IP 已传递真实 IP)。
  4. SSL 测试:如果配置了 HTTPS,访问 https://us.example.com,浏览器地址栏显示安全锁,并且证书信息正确。

如果你在配置 Nginx 反向代理多跨境站点时还遇到其他问题,比如 URL 重写、负载均衡、WebSocket 支持等,欢迎在评论区留言。
建议先从最简单的两个站点入手,跑通后再扩展到更多站点的场景,这样排错成本最低。

分享到:
上一篇
Nginx最新高危漏洞一键修复教程:从检查到防护完整指南
下一篇
Nginx缓存配置提升海外访问:Nginx缓存配置指南
1
系统公告

机房迁移升级通知

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