websocket 反向代理

在理解反向代理与负载均衡后就可以快速实现 websocket 的反向代理。

configopen in new window

vim /etc/nginx/conf.d/default.conf

# 修改为以下内容
server {
  listen       80;
  server_name  nginx.example.com;

  #charset koi8-r;
  access_log  /var/log/nginx/nginx.access.log  main;
  error_log  /var/log/nginx/nginx.error.log warn;

  location /chat/ {
    proxy_pass http://echo.websocket.org;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }
}

nginx -s reload # 重载配置

test

接着在测试页面open in new window将 Location 中的 ws://echo.websocket.org 替换为目标地址 ws://nginx.example.com/chat/ (需要修改本地 DNS),Connect 成功即为成功。