SocketIO和Web服务能否共用一个端口?

socketio 共用端口

socketio 是否可以与 web 服务共用一个端口?对于此问题,答案是肯定的。

借助反向代理实现共用

使用反向代理是解决此问题的一种简单方法。将 80 端口的 /socket.io/ 开头请求代理到原始的 9092 端口,其他路径的请求则转发到原始 80 端口的程序。

反向代理配置示例

以下是使用 nginx 实施反向代理的示例配置:

http {
  server {
    listen 8

0; root /var/www/html; location / { # 默认后端 proxy_pass http://localhost:9091; } location /socket.io/ { # socketio 后端 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_pass http://localhost:9092; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } }