Nginx 服务器阻止返回 404,如何调试

Nginx 服务器阻止返回 404,如何调试

我有两个服务器块,使用不同的 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";
  }
}

如果需要,您也可以添加变量。

相关内容