<div dir="ltr">это очень странная статья. скажем так, между строк ПОДРАЗУМЕВАЕТСЯ, что '
'' close;' по причине того, что мы наверняка не знаем, есть ли keepalive в описании бекенде.<div><br></div><div>по факту сокеты вроде и работают, но рвутся после каждого запроса.</div><div><br></div><div>мы по этим же граблям прошлись в свое время</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">чт, 29 февр. 2024 г. в 20:30, Gena Makhomed <<a href="mailto:gmm@csdoc.com">gmm@csdoc.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Здравствуйте, All!<br>
<br>
В статье <a href="https://www.nginx.com/blog/websocket-nginx/" rel="noreferrer" target="_blank">https://www.nginx.com/blog/websocket-nginx/</a><br>
рекомендуется такой код:<br>
<br>
http {<br>
map $http_upgrade $connection_upgrade {<br>
default upgrade;<br>
'' close;<br>
}<br>
<br>
upstream websocket {<br>
server <a href="http://192.168.100.10:8010" rel="noreferrer" target="_blank">192.168.100.10:8010</a>;<br>
}<br>
<br>
server {<br>
listen 8020;<br>
location / {<br>
proxy_pass <a href="http://websocket" rel="noreferrer" target="_blank">http://websocket</a>;<br>
proxy_http_version 1.1;<br>
proxy_set_header Upgrade $http_upgrade;<br>
proxy_set_header Connection $connection_upgrade;<br>
proxy_set_header Host $host;<br>
}<br>
}<br>
}<br>
<br>
При этом в других статьях - для включения keep-alive<br>
рекомендуется такой код:<br>
<br>
proxy_http_version 1.1;<br>
proxy_set_header Connection "";<br>
<br>
для того, чтобы режим Keep-alive работал между nginx и backend.<br>
<br>
Keep-alive connections are enabled by default in HTTP/1.1 while not in <br>
HTTP/1.0. HTTP/1.0 was designed to close the connection after every <br>
request between client and server.<br>
<br>
может быть в статье на сайте рекомендуется не самая оптимальная<br>
настройка и лучше было бы сделать так:<br>
<br>
# cat /etc/nginx/nginx.conf<br>
<br>
http {<br>
<br>
map $http_upgrade $connection_upgrade {<br>
default Upgrade;<br>
'' '';<br>
}<br>
<br>
proxy_http_version 1.1;<br>
proxy_set_header Upgrade $http_upgrade;<br>
proxy_set_header Connection $connection_upgrade;<br>
proxy_set_header Host $host;<br>
}<br>
<br>
<br>
в таком случае и вебсокеты смогут работать по любому урлу<br>
и при этом keep-alive подключения к backend тоже будут работать.<br>
<br>
upstream node {<br>
server <a href="http://127.0.0.1:3000" rel="noreferrer" target="_blank">127.0.0.1:3000</a>;<br>
keepalive 64;<br>
}<br>
<br>
<br>
ведь нет же никаких причин разрешать вебсокеты только<br>
по какому-то явно прописанному в конфиге урлу,<br>
а по всем остальным урлам - запрещать?<br>
<br>
-- <br>
Best regards,<br>
Gena<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="https://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">https://mailman.nginx.org/mailman/listinfo/nginx-ru</a><br>
</blockquote></div>