使用 UNIX 套接字時 Nginx 保持活動狀態

使用 UNIX 套接字時 Nginx 保持活動狀態

在使用 UNIX 套接字作為伺服器的上游上使用時是否有任何好處或效能增益keepalive,例如:

upstream test {
    server unix:/tmp/test.sock;
    keepalive 60;
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;

    location / {
        proxy_pass http://test;
        proxy_http_version 1.1;  
        proxy_redirect off;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

根據我的理解,使用 UNIX 套接字時沒有 TCP 三向握手,因此keepalive 60;範例中的不適用,這是正確的嗎?

答案1

UNIX 套接字仍然是連接,因此nginx 保活是這些的緩存,較低層級發生的情況並不重要。

這裡的 keepalive 與許多其他工具/服務不同,這些工具/服務意味著發送/接收某些內容以維持連線。

相關內容