gpt4 book ai didi

php - Nginx:读取上游时 readv() 失败(104:对等连接重置)

转载 作者:行者123 更新时间:2023-12-02 04:31:17 24 4
gpt4 key购买 nike

我已经阅读了有关此错误的所有其他线程,但没有运气。

我在 RHEL 6 上使用 PHP-FPM 5.6 运行 Nginx 1.12.2

我在我网站的任何/所有页面上都收到这些错误。它与慢速请求无关。我亲眼目睹了它,我立即得到了一个 500 错误页面,没有任何等待。

它同时影响 POST 和 GET 请求。

我没有运行任何操作码缓存(我知道)我检查了所有配置文件,phpinfo() 以及 php -v 并且没有看到任何关于 opcache 或操作码的提及。)

我在 PHP-FPM 中打开了 catch_workers_output。我没有收到任何 PHP 错误

我有足够的可用内存,并且系统日志中没有关于内存、文件描述符或套接字的错误。

尝试了 pm_max_requests 的高低数字

没有运行 xdebug 插件

似乎在随机时间发生,即使在我们根本不忙的半夜。

我迫切需要解决这个已经持续数月的问题。

以下是以下评论中要求提供的一些信息:

Nginx fastcgi.conf(与库存文件的差异):

fastcgi_intercept_errors on;
fastcgi_param REDIRECT_STATUS 200;
fastcgi_buffer_size 32k;
fastcgi_buffers 8 16k;
fastcgi_max_temp_file_size 0;
fastcgi_keep_conn on;

Nginx 配置细节:
sendfile        on;
tcp_nopush on;
tcp_nodelay on;
server_tokens off;
gzip off;
gzip_static on;
gzip_comp_level 5;
gzip_min_length 1024;
types_hash_max_size 2048;
client_body_timeout 900;
client_header_timeout 900;
keepalive_timeout 900;
send_timeout 900;
proxy_connect_timeout 900s;
proxy_send_timeout 900s;
proxy_read_timeout 900s;
fastcgi_send_timeout 900s;
fastcgi_read_timeout 900s;

Nginx 位置特定配置:
client_max_body_size 40M;

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi.conf;
}

php-fpm 配置细节:
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 1000
pm.start_servers = 300
pm.min_spare_servers = 200
pm.max_spare_servers = 350
pm.max_requests = 1000 ; I've tried higher/lower with no difference
slowlog = /var/log/php-fpm/www-slow.log
catch_workers_output = yes
php_admin_value[error_log] = /var/log/php_error_log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session

已安装版本:
php.x86_64                                                               5.6.33-1.el6.remi                                      @remi-php56                       
php-bcmath.x86_64 5.6.33-1.el6.remi @remi-php56
php-cli.x86_64 5.6.33-1.el6.remi @remi-php56
php-common.x86_64 5.6.33-1.el6.remi @remi-php56
php-devel.x86_64 5.6.33-1.el6.remi @remi-php56
php-fedora-autoloader.noarch 1.0.0-1.el6.remi @remi
php-fpm.x86_64 5.6.33-1.el6.remi @remi-php56
php-gd.x86_64 5.6.33-1.el6.remi @remi-php56
php-gmp.x86_64 5.6.33-1.el6.remi @remi-php56
php-imap.x86_64 5.6.33-1.el6.remi @remi-php56
php-mbstring.x86_64 5.6.33-1.el6.remi @remi-php56
php-mcrypt.x86_64 5.6.33-1.el6.remi @remi-php56
php-mysqlnd.x86_64 5.6.33-1.el6.remi @remi-php56
php-pdo.x86_64 5.6.33-1.el6.remi @remi-php56
php-pear.noarch 1:1.10.5-4.el6.remi @remi
php-pecl-igbinary.x86_64 2.0.5-1.el6.remi.5.6 @remi-php56
php-pecl-imagick.x86_64 3.4.3-5.el6.remi.5.6 @remi-php56
php-pecl-jsonc.x86_64 1.3.10-2.el6.remi.5.6 @remi-php56
php-pecl-jsonc-devel.x86_64 1.3.10-2.el6.remi.5.6 @remi-php56
php-pecl-memcache.x86_64 3.0.8-3.el6.remi.5.6 @remi-php56
php-pecl-memcached.x86_64 2.2.0-3.el6.remi.5.6 @remi-php56
php-pecl-msgpack.x86_64 0.5.7-1.el6.remi.5.6 @remi-php56
php-pecl-ssh2.x86_64 0.13-3.el6.remi.5.6 @remi-php56
php-pecl-zip.x86_64 1.15.2-1.el6.remi.5.6 @remi-php56
php-process.x86_64 5.6.33-1.el6.remi @remi-php56
php-xml.x86_64 5.6.33-1.el6.remi @remi-php56


nginx version: nginx/1.12.2

Kernel: 2.6.32-696.20.1.el6

最佳答案

就我而言,这是因为 Netflix Zuul:

当我尝试上传超过 1 MB 的文件时,我从 nginx 日志中收到此消息:

readv() failed (104: Connection reset by peer) while reading upstream



我的 Web 应用程序使用 Nginx 并重定向到 Netflix Zuul。所以我需要在properties.yml中设置这个配置
servlet:
multipart:
max-request-size: 10MB
max-file-size: 10MB

它对我有用。

注意:如果您将大小设置为 0 并使用 spring 安全性,它将超过限制。

关于php - Nginx:读取上游时 readv() 失败(104:对等连接重置),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48545987/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com