
Gibt es Vorteile oder eine Leistungssteigerung bei der Verwendung keepalive
auf einem Upstream, der einen UNIX-Socket als Server nutzt, zum Beispiel:
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;
}
}
Meines Wissens gibt es bei der Verwendung eines UNIX-Sockets keinen TCP-Drei-Wege-Handshake. Deshalb keepalive 60;
gelten die Angaben im Beispiel nicht. Ist das richtig?
Antwort1
UNIX-Sockets sind immer noch Verbindungen, daherNginx-Keepaliveist ein Cache davon, und es spielt keine Rolle, was auf den unteren Ebenen passiert.
Keepalive ist hier nicht dasselbe wie viele andere Tools/Dienste, bei denen etwas gesendet/empfangen wird, um die Verbindung aufrechtzuerhalten.