我已经阅读了有关此错误的所有其他帖子而没有运气。
我在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 conf细节:
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
答案 0 :(得分:0)
就我而言,这是因为Netflix Zuul:
当我尝试上传超过1 MB的文件时,我从nginx日志中收到此消息:
在读取上游时readv()失败(104:对等连接重置)
我的Web应用程序使用Nginx并重定向到Netflix Zuul。所以我需要在properties.yml中设置此配置
servlet:
multipart:
max-request-size: 10MB
max-file-size: 10MB
它对我有用。
注意:如果将大小设置为0并使用spring security,它将超过限制。