-
有時候我們用 nginx 做反向代理的時候會遇到如下報錯:
"[error] 11618#0: *324911 upstream timed out (110: Connection timed out) while reading response header from upstream, " 複製程式碼
-
這種情況多發生在用 nginx 做反向代理的時候,例如用 nginx 做反向代理轉發某一個
swagger
介面,當訪問介面時報錯,狀態碼一般為 504 ,也就是代理超時的問題。 -
其實這是由於超時問題造成的,解決方案如下:
Proxy 方式
-
一般我們用的是 nginx 的 proxy 機制做反向代理,此時我們需要修改 nginx 配置檔案
nginx.conf
,在 http 或者 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; 複製程式碼
-
然後重啟 nginx ,一般超時問題就會解決了。
Fastcgi 方式
-
大多數情況下我們用的是 proxy 方式,但是有時候我們還會遇到 fastcgi 的方式,例如用 nginx 處理 php 頁面的場景。其實處理方式類似,同樣是修改 nginx 配置檔案
nginx.conf
,在 http 或者 server 段新增如下內容:large_client_header_buffers 4 16k; client_max_body_size 30m; client_body_buffer_size 128k; 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; 複製程式碼
-
然後重啟 nginx ,一般超時問題就會解決了。
上述配置的具體引數還需根據實際情況而定,不能一味的複製貼上,希望能幫到大家處理對應的問題。