nginx服务器有时会返回404 Not Found以获取有效的URL

时间:2015-04-07 17:08:56

标签: nginx php

我正在使用带有PHP-FPM的nginx服务器进行Web开发。在从浏览器向服务器发送连续的AJAX调用时,我有时会获得有效URL的404 Not Found错误。 (当我在新的浏览器选项卡中打开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。

请帮忙

1 个答案:

答案 0 :(得分:0)

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

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

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