什么是502状态码?
502 Bad Gateway:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
解决办法:
检查Nginx配置文件
1.1 fastcgi_connect_timeout
配置语法: fastcgi_connect_timeout 时间(单位为s)
默认值: fastcgi_connect_timeout 60s
配置区域: http server location
配置项说明: 指定nginx与后端fastcgi server连接超时时间
1.2 fastcgi_send_timeout
配置语法: fastcgi_send_timeout 时间(单位为s)
默认值: fastcgi_send_timeout 60s;
配置区域: http server location
配置项说明:指定nginx向后端传送请求超时时间(指已完成两次握手后向fastcgi传送请求超时时间)
1.3 fastcgi_read_timeout
配置语法: fastcgi_read_timeout 时间(单位为s)
默认值: fastcgi_send_timeout 60s;
配置区域: http server location
配置项说明:指定nginx接受后端fastcgi响应请求超时时间 (指已完成两次握手后nginx接受fastcgi响应请求超时时间)
1.4 fastcgi_buffer_size
配置语法: fastcgi_buffer_size size (单位为k,一般为4的整数倍)
默认值: fastcgi_buffer_size 4k|8K
配置区域: http server location
配置项说明:指定nginx读取fastcgi响应第一部分需要用多大的缓冲区,这个值表示将使用一个64kb的缓冲区响应第一部分应答(应答头)可以设置为fastcgi_buffers缓存区大小
1.5 fastcgi_buffers
配置语法: fastcgi_buffers num size (单位为k,一般为4的整数倍)
默认值: fastcgi_buffers 8 4k|8K
配置区域: http server location
配置项说明: 指nginx需要用多大的缓冲区缓冲fastcgi的应答请求(整个应答),如果一个php脚本所产生的页面大小为256kb,那么会分配4个64kb缓冲区来缓存,如果页面大于256kb,那么大于256kb的部分会缓存到fastcgi_temp指定的路径中,但是因为内存中数据处理远快于磁盘, 所以这个值应该为站点中php所产生的页面大小的中间值, 如果站点大部分php脚本产生的页面为:256kb, 那么可以设置成成"8 16k 4 64k"
1.6 fastcgi_busy_buffers_size
配置语法:fastcgi_busy_buffers_size size (单位为K,一般为fastcgi_buffers值的2倍)
默认值: fastcgi_busy_buffers 8k|16K
配置区域: http server location
配置项说明:整个数据请求需要多大的缓存区,建议设置为fastcgi_buffers值的两倍
检查php 配置:
2.1 output_buffering
配置语法:output_buffering size(单位为K)
默认值:output_buffering 65535
配置区域:php.ini
配置项说明:输出缓存区
2.2 max_execution_time
配置语法:max_execution_time size(单位为秒)
默认值:max_execution_time 30
配置区域:php.ini
配置项说明:程序最长执行时间,数值 0 表示没有执行时间的限制
2.3 max_input_time
配置语法:max_input_time size(单位为秒)
默认值:max_input_time 30
配置区域:php.ini
配置项说明:程序解析执行时间,数值 0 表示没有执行时间的限制
详细了解可以查看 php配置文件中的超时时间
2.4 memory_limit
配置语法:memory_limit size(单位为 m)
默认值:memory_limit 128
配置区域:php.ini
配置项说明:只是限制了每个 PHP 进程的内存使用上限,-1不限制
2.5 post_max_size
配置语法:post_max_size size(单位为 m)
默认值:post_max_size 2
配置区域:php.ini
配置项说明:POST 数据所允许的最大大小。此设定也影响到文件上传
2.6 upload_max_file
配置语法:upload_max_file size(单位为 m)
默认值:upload_max_filesize 2
配置区域:php.ini
配置项说明:上传文件的最大大小
2.7 rlimit_files
配置语法:rlimit_files size(单位为 m)
默认值:rlimit_files 与系统 ulimit -n 一样
配置区域:php-fpm.conf
配置项说明:进程可打开句柄数
2.8 pm.max_requests
配置语法:pm.max_requests(单位为 number)
默认值:
配置区域:php-fpm.d/www.conf
配置项说明:php-fpm工作进程处理完多少请求后自动重启
温馨提示:遇到502耐心调试,多数都是配置问题。