在使用 Nginx 作為 Reverse proxy 時,有可能會遇到 connect() failed (111: Connection refused) while connecting to upstream
的問題,這個問題需要檢查 Nginx config 是否有正確設定 proxy_http_version
。
這邊我們用 Nginx 作為 Elasticsearch 的 reverse proxy 來當作範例,設定檔如下:
1 | upstream elasticsearch { |
最重要的是 proxy_http_version
這個設定,要讓 Nginx 作為 proxy 可以和 upstream backend service 之間也使用 keepalive
,必須使用 http 1.1,但預設值是 1.0,因此必須在 config 中加上此設定,同時也記得設定 proxy_set_header Connection "";
參考資料: