美文网首页代码
Nginx 代理 WebSocket

Nginx 代理 WebSocket

作者: 寂寞的原子 | 来源:发表于2017-04-04 11:53 被阅读84次

    Nginx 代理 WebSocket 的要点是设置UpgradeConnection响应头。

    配置 Nginx 根据Upgrade(即$http_upgrade)来设置Connection

    • 如果请求头中有Upgrade,就直接设置到相应头中,并把Connection设置为upgrade。如 WebSocket 请求头会带上Upgrade: websocket,则响应头有
      Upgrade: websocket
      Connection: upgrade
      
    • 否则把Connection设置为close。如普通HTTP请求。

    最终 Nginx 配置如下:

    map $http_upgrade $connection_upgrade {
      default upgrade;
      '' close;
    }
    
    server {
      listen 8000;
      location / {
        proxy_pass http://localhost:4000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
      }
    }
    

    相关文章

      网友评论

        本文标题:Nginx 代理 WebSocket

        本文链接:https://www.haomeiwen.com/subject/wrvaottx.html