Ssl
保持反向代理和後端伺服器之間的 SSL 連接處於活動狀態
我有一個後端伺服器 (Apache),它離我們的大多數使用者都太遠了,所以我們的想法是實現一個更接近的反向代理來充當記憶體。
乍一看,它就像一種魅力。記憶體的靜態文件的服務速度非常快,但對於其他任何事情,反向代理 (NGINX) 都需要連接到後端伺服器,這需要一些時間來進行 SSL 握手,從而使這些第一個請求變慢。
我正在搜尋這方面的資訊,但我找不到保持這種聯繫的方法。有沒有辦法做到這一點?
我什至嘗試了解有關 websocket 的更多資訊,但我能找到的所有實現都是為了回答特定請求,而不是保持連接兩個 Web 伺服器(反向代理的 NGINX 和後端的 Apache)的連接。
你們中是否有人對學習/使用/搜尋什麼有任何想法或提示以實現這一目標?
非常感謝您!
keepalive
在 nginx 中,如果連接是在upstream
塊中定義的,則只能指定上游連接。例如:upstream backend { server private-api.example.com:443; keepalive 32; }
在這裡,
keepalive
指定每個工作程序同時打開的與上游伺服器的最大連接數。要使用上游,您在您的
proxy_pass
而不是後端地址中指定其名稱。例如,如果您以前使用過:
proxy_pass https://private-api.example.com:443;
您可以將其更改為:
proxy_pass https://backend;
從字面上用上游的名稱替換定義的
server
.您還必須將 HTTP 版本設置為 1.1(因為它預設為 1.0 非常荒謬)並清除 Connection 標頭:
proxy_http_version 1.1; proxy_set_header Connection "";
請記住,
keepalive_timeout
您還可以在其中定義一個upstream
您可能需要調整的內容。預設情況下是 60 秒,所以如果一個連接空閒了那麼長時間,它將被關閉,即使keepalive
打開的連接數少於此。後端伺服器將有自己的 keepalive 超時,您還需要單獨調整。