
Есть ли какие-либо преимущества или прирост производительности при использовании keepalive
на вышестоящем сервере, использующем сокет UNIX, например:
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 здесь не то же самое, что и во многих других инструментах/сервисах, которые подразумевают отправку/получение чего-либо для поддержания соединения.