nginx 中根据 $http_upgrade 变量将 HTTP 连接升级为 WebSocket 连接

配置 “$connection_upgrade” 变量

连接升级通常与 WebSockets 结合使用。 在 nginx 中,我们可以根据 $http_upgrade 变量将 HTTP 连接升级为 WebSocket 连接。

我们可以使用 map 块在 nginx 中定义连接和 http 升级之间的依赖关系:

vim nginx.conf

map $http_upgrade $connection_upgrade {
        default upgrade;
        '  '       close;
       }
如果 Upgrade 标头设置为 ‘’,此 map 块告诉 nginx 正确设置相关的 Connection 标头来关闭连接。
将 map 块放入 nginx 配置的 http 块中。 nginx 配置的默认文件路径是 /etc/nginx/nginx.conf 。
————————————————
cat   abcd.hkml.com.conf

map $http_upgrade $connection_upgrade {
  default upgrade;
  '  '       close;
        }

server {
  listen 443 ;

  server_name abcd.hkml.com;

  ssl_certificate /etc/nginx/ssl/abcd.hkml.com.pem;
  ssl_certificate_key /etc/nginx/ssl/abcd.hkml.com.key;
  #ssl_session_cache shared:SSL:1m;
  ssl_session_timeout 5m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  ssl_prefer_server_ciphers on;

  location ~^/webSocket{
    proxy_pass http://172.1.1.10:9099;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_read_timeout 3600s;
    proxy_connect_timeout 86400;
    proxy_ignore_client_abort on;
    }

  }

posted @   walkersss  阅读(3151)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek “源神”启动!「GitHub 热点速览」
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
点击右上角即可分享
微信分享提示