我有两个服务器块,使用不同的 server_name 但相同的目的地进行测试。
server {
listen 80;
server_name api.x.com;
location / {
proxy_pass http://localhost:3000;
}
}
server {
listen 80;
server_name y.io;
location / {
proxy_pass http://localhost:3000;
}
}
第一个服务器块(api.x.com)按预期工作。但是 y.io 返回 404。无论我是否尝试 proxy_pass 或发回静态 index.html
两个域具有相同的 DNS 配置(如果我删除 y.io 的 server_block,那么 y.io 将给我默认的 nginx 欢迎页面。)
我该如何调试它?
答案1
首先查看 Nginx 错误日志。接下来检查端口 3000 上监听的内容的日志,查看请求是否到达,如果到达,则查看日志/错误日志以了解请求正在执行的操作。
如果你需要按照我在本文中概述的方式调试 Nginx 位置,这需要需要安装更多标题进入你的 Nginx。如果没有,编译 Nginx 相当简单。你的路径可能看起来像这样
server {
listen 80;
server_name y.io;
location / {
add_header X_LOCATION1 "yes";
proxy_pass http://localhost:3000;
add_header X_LOCATION2 "yes";
}
}
如果需要,您也可以添加变量。