Nginx報錯解決

隨着併發量上升,nginx開始出現502,即nginx已經發現不了存活的後端了
但是web程序沒有任何錯誤,後端的數據庫也很正常,查看nginx錯誤日誌
tail -f /usr/local/nginx/log/error.log

[error] 31365#0: *11971189 upstream timed out (110: Connection timed out)
while reading response header from upstream host: "192.168.12.127"

修改proxy_read_timeout,proxy_send_timeout和proxy_buffer幾個相關設置的值
在server標籤添加

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;

proxy_和fastcgi_兩種配置,就是說如果你的nginx後面是proxy,就設置proxy相關的配置,如果是fastcgi就設置fastcgi相關的配置

more /usr/local/nginx/nginx.conf

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    upstream eureka {
    server 192.168.12.104:8082;
    server 192.168.12.127:8080;
    keepalive 256;
}
    server {
        listen       80;
        server_name  localhost;

        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;
 location / {
        proxy_redirect      off;
        proxy_pass          http://eureka;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
    }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章