如何本地测试配置多服务的Nginx反向代理?
本地多域名路由解决方案
步骤1:修改hosts文件映射域名到本地
先把两个域名都指向127.0.0.1,编辑/etc/hosts文件添加以下两行:
127.0.0.1 example.com 127.0.0.1 example-api.com
注:hosts文件仅负责域名到IP的解析,不支持绑定端口,这一步仅完成域名指向本地,后续靠Nginx区分不同域名的转发目标。
步骤2:配置Nginx反向代理区分域名
编辑Nginx的虚拟主机配置(比如在/etc/nginx/sites-available/下新建local-dev.conf,或修改默认配置文件),添加两个server块分别处理两个域名:
处理前端网站(example.com)
假设你的前端服务运行在本地3000端口:
server { listen 80; server_name 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; } }
处理后端API(example-api.com)
假设你的后端API服务运行在本地8080端口:
server { listen 80; server_name example-api.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 若API有跨域、特定请求头需求,可在此添加对应配置 } }
步骤3:启用配置并重启Nginx
- 如果是新建的配置文件,先创建软链接到启用目录:
sudo ln -s /etc/nginx/sites-available/local-dev.conf /etc/nginx/sites-enabled/
- 测试配置文件语法是否正确:
sudo nginx -t
- 重启Nginx使配置生效:
sudo systemctl restart nginx
完成后,访问example.com时Nginx会自动转发到本地3000端口的前端服务;访问example-api.com时则转发到8080端口的后端API服务。
内容的提问来源于stack exchange,提问作者hiptip
相关产品推荐
相关产品推荐

