nginx负载websocket,nginx websocket负载均衡

  nginx负载websocket,nginx websocket负载均衡

  proxy _ set _ header X-Real-IP $ remote _ addr;

  proxy _ set _ header X-Forwarded-For $ proxy _ add _ X _ Forwarded _ For;

  proxy _ set _ header Host $ http _ Host;

  Proxy _ set _ header X-NginX-Proxy true;

  proxy _ pass http://127 . 0 . 0 . 1:8001;

  proxy _ redirect off

  位置/c/{

  proxy _ pass http://127 . 0 . 0 . 1:8002;

  #网站支持

  proxy _ http _ version 1.1

  proxy _ set _ header Upgrade $ http _ Upgrade;

  proxy_set_header连接“升级”;

  proxy_set_header原点xxx

  proxy _ set _ header X-Real-IP $ remote _ addr;

  proxy _ set _ header X-Forwarded-For $ proxy _ add _ X _ Forwarded _ For;

  proxy _ set _ header Host $ http _ Host;

  Proxy _ set _ header X-NginX-Proxy true;

  }

  首先设置服务器的监听端口,然后设置服务的域名。

  位置的具体用法可以在第二篇参考文献中详细描述。在这里,我使用/u/来匹配我的路径。我使用下面{}中的配置,从/u/开始。

  我将依次介绍每个参数的功能:

  proxy _ set _ header X-Real-IP $ remote _ addr;#远程真实ip地址

  proxy _ set _ header X-Forwarded-For $ proxy _ add _ X _ Forwarded _ For;#反向代理后转发前的ip地址

  proxy _ set _ header Host $ http _ Host;# HTTP请求的主机域名

  Proxy _ set _ header X-NginX-Proxy true;# nginx代理

  这些参数都用在nginx反向代理中。

  proxy _ pass http://127 . 0 . 0 . 1:8001;#反向代理转发地址

  proxy _ redirect off#代理是否支持重定向

  下面匹配/c/path下我的websocket转发服务。与上面不同的是,他需要在标题中添加以下内容

  proxy _ http _ version 1.1

  proxy _ set _ header Upgrade $ http _ Upgrade;

  proxy_set_header连接“升级”;

  将http1.1升级到websocket协议。另一个需要特别注意的是,如果websocket服务器收到websocket握手包,它会检查原点信息与域信息不匹配。会直接拒绝服务。这是个坑。我花了将近半天的时间才发现为什么连不上。最后,我发现Origin必须与请求的地址在同一个域中,否则它将被拒绝访问并返回403。

  另外,上述配置中的所有变量都可以通过get_header中的信息获得。

  如果想根据不同情况更详细的查看配置,可以参考官网和nginx的参考。

  以上。

  参考:

  https://segmentfault.com/n/1330000006925038nginx配置文件梳理

  http://seanlook.com/2015/05/17/nginx-location-rewrite/nginx配置位置汇总和重写规则编写

  http://www.ha97.com/5194.html(概要)Nginx配置文件nginx.conf中文详解

  http://nginx.org/en/docs/http/websocket.htmlWebSocket代理

  https://www..com/piperck/p/7066286.html

nginx负载websocket,nginx websocket负载均衡