nginx 运维手记
今天遇到了一个问题,后端tomcat 运行正常,但是网站一直访问不了。
nginx 的错误日志一直报如 Nginx: Too Many Open Files
添加配置 worker_rlimit_nofile 30000;
,记得调整 worker_connections
参数,然后 service nginx restart
。
然后又报了另外一个错误 Nginx: Connection timed out
,添加如下的配置:
large_client_header_buffers 4 16k;
client_max_body_size 30m;
client_body_buffer_size 128k;
#proxy_connect_timeout 300;
#proxy_read_timeout 300;
#proxy_send_timeout 300;
#proxy_buffer_size 64k;
#proxy_buffers 4 32k;
#proxy_busy_buffers_size 64k;
#proxy_temp_file_write_size 64k;
fastcgi_connect_timeout 300;
fastcgi_read_timeout 300;
fastcgi_send_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 32k;
fastcgi_busy_buffers_size 64k;
fastcgi_temp_file_write_size 64k;
然后 service nginx restart
。
如果 nginx 的模式是 proxy 的话,就用 proxy 前缀的配置,如果是 fastcgi 的模式,就用 fastcgi 前缀的配置。
接着又报一个 nginx[warn]:an upstream response is buffered to a temporary
的警告,在此谷歌,然后发现是 Nginx 的 buffer 机制 的问题,参考这篇文章。
可以调整如下配置:
proxy_buffer_size 512k;
proxy_buffers 8 512k;
proxy_busy_buffers_size 512k;
proxy_temp_file_write_size 512k;
将 buffer 大小调大。可以实际去看看请求页面的大小,去配置,如果 buffer 大于页面大小,可以调整 proxy_buffers 16 512k;
,然后 service nginx restart
。
Nginx: Too Many Open Files 错误和解决方案
nginx 报错 upstream timed out (110: Connection timed out)解决方案
nginx[warn]:an upstream response is buffered to a temporary 解决