【问题标题】:nginx server sometime returns 404 Not Found for valid a URLnginx 服务器有时会为有效的 URL 返回 404 Not Found
【发布时间】:2015-04-07 17:08:56
【问题描述】:

我正在使用带有 PHP-FPM 的 nginx 服务器进行 Web 开发。在从浏览器向服务器发送连续的 AJAX 调用时,我有时会收到 404 Not Found 有效 URL 错误。 (当我在新的浏览器选项卡中打开 URL 时,它会正确显示页面。)

我无法调试为什么 nginx 会这样。我不知道它是否正在断开连接。我该怎么办?

我正在使用默认安装的 nginx 并且没有对其进行任何更改。

这是我的 nginx.conf

服务器{

    listen                                  IP address with PORT ssl;
    server_name                             SERVER Name;

    root                                    /u01/projectfolder;

    ssl                             on;
    ssl_certificate                 /etc/nginx/ssl/36287365.net.cert;
    ssl_certificate_key             /etc/nginx/ssl/36287365.net.key;



    index                                   index.php index.html;
    log_not_found                           off;
    charset                                 utf-8;

   location /rainbow {
            try_files $uri $uri/ /rainbow/index.php$is_args$args;
    }

    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass   127.0.0.1:9101;
            fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include         fastcgi_params;
    }

}

我还在 php 端 index.php 添加了日志,但是对于 404 请求日志没有生成。我猜是php方式fastcgi和nginx的请求没有达到。

请帮忙

【问题讨论】:

  • 你检查过nginx和php的日志吗?你在用 fastcgi 吗?
  • 这里没有足够的信息:什么网址?你的配置是什么?页面在幕后做什么?
  • 最好的办法是在serverfault.com 上发布此问题您的问题似乎与负载有关,这需要扩展诊断。
  • 语法和格式
  • 我已经检查了 nginx 和 php 日志并使用了 fastcgi

标签: nginx php


【解决方案1】:

如果您有多个服务器在同一端口上侦听,则可能会发生这种情况,请确保只有一个 PHP 服务器在侦听 9101。

我在两个不同的 Node.js 服务器同时运行并监听同一个端口时遇到过这种情况 - 大约 50% 的请求返回 HTTP 错误 404,而其余的则返回 OK 200。

您可以通过绕过 Nginx 在机器上直接使用 CURL 生成相同的请求来验证这不是 Nginx 的错误。如果这仍然发生,那不是他们的错。

【讨论】:

    猜你喜欢
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 2017-07-01
    • 1970-01-01
    • 2012-09-20
    • 2018-04-17
    相关资源
    最近更新 更多