网关超时 服务器设置中有很多地方都会设置运行时间限制,所以在使用大型应用程序的时候,需要将各种超时时间设置长一点,否则没等程序跑完就被系统掐断了。 不同性能的服务器,需要优化的参数值也不一样,所以需要自己摸索适合自己服务器的数值。 Nginx(重要) 在 nginx.conf,如宝塔地址:/www/server/nginx/conf/nginx.conf,其中找到以下参数: keepalive_timeout 3600 保持连接的时间限制,推荐 3600 fastcgi_connect_timeout 3600 指定nginx与后端fastcgi server连接超时时间,推荐 3600 fastcgi_send_timeout 3600 指定nginx向后端传送请求超时时间,推荐 3600 fastcgi_read_timeout 3600 指定nginx接受后端fastcgi响应请求超时时间,推荐 3600 特别是这4个timeout(单位:秒),时间太短容易504,除非你的服务器性能超强,可以在规定时间内跑完程序,推荐 3600。 fastcgi_buffer_size 128k 指定nginx读取fastcgi响应第一部分需要用多大的缓冲区,可以设置为 fastcgi_buffers 缓存区大小,推荐 128k fastcgi_buffers 8 128k 指nginx需要用多大的缓冲区缓冲fastcgi的应答请求,推荐 8 128k fastcgi_busy_buffers_size 256k 整个数据请求需要多大的缓存区,建议设置为 fastcgi_buffers 值的2倍,推荐 256k fastcgi_temp_file_write_size 512k 在写入缓存文件时使用多大的数据块,默认值是 fastcgi_buffers 的2倍,推荐 512k client_body_buffer_size 32k 请求主体的缓冲区大小,太小会降低速度导致超时,推荐 32k,如果没有这条可以不管,也可以加上。 如果你使用的是nginx的负载均衡Proxying,调整: proxy_buffer_size 64k 指定nginx读取代理响应第一部分需要用多大的缓冲区,可以设置为 proxy_buffers 缓存区大小,推荐 64k proxy_buffers 4 64k 指nginx需要用多大的缓冲区缓冲代理的应答请求,推荐 4 64k proxy_busy_buffers_size 128k 代理数据请求需要多大的缓存区,建议设置为 proxy_buffers 值的2倍,推荐 128k 另外如果各缓冲区太小会导致fastcgi进程被挂起从而演变为 504 甚至 502 错误,所以可以将 bufser_size 适当调大,范例中推荐增大2倍,如果不够用可以 10 倍甚至更大。 为防止填错,建议把所有数值乘以相同倍数。 有些集成环境的 Nginx 设置中可以直接修改某些参数。 CDN(重要) 如果用了CDN,就需要 修改你电脑的hosts文件,绕过CDN直连网站,否则通常CDN有1分钟的超时限制,而且无法修改。 Apache(重要) 如果用的是Nginx,就不需要修改这个了。在 httpd.conf 中找到以下参数: Timeout:接收和发送的超时限制,默认120秒,推荐3600。如果不存在,请自行添加。 PHP(不重要) 在 php.ini 中找到以下参数: 注意:通常不需要修改这里,因为在 设置 - 服务器压力 - 超时 中可以动态修改,推荐3600,即默认的1小时。 max_execution_time:脚本解析允许的最大时间(单位:秒) max_input_time:脚本解析输入数据(类似POST 和GET)允许的最大时间(单位:秒) MySQL(不重要) 在 my.cnf 中找到以下参数: 注意:通常不需要修改这里,除非你一次要保存到数据库的内容非常多。 innodb_lock_wait_timeout:指的是事务等待获取资源等待的最长时间,超过这个时间还未分配到资源则会返回应用失败