在使用 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 与许多其他工具/服务不同,这些工具/服务意味着发送/接收某些内容以维持连接。