阿里云ecs 如何配置socket应用。

zsirfs
  • 808

问题描述: 我又一个阿里云ECS实例, Ubuntu16.04LTS 发行版本,现在部署了一个nodejs应用,配置了socket服务器,在网页上我使用websocket 进行链接,但是报错了?

clipboard.png

错误如下,请问原因是什么呢? 配置端口是3003.

回复
阅读 3.2k
2 个回答
✓ 已被采纳

我在服务器上用了nginx 转发,实际上就是nginx配置问题,配置nginx配置socket转发的问题,配置如下:

# 打开nginx.conf配置文件后
http {
    # ...
    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }
    upstream socket_nodes {
        server localhost:3003;
    }
}

在转发虚拟主机上加上配置:
    # 虚拟主机配置

   server {
        # ...
        proxy_set_header        Upgrade $http_upgrade;
        proxy_set_header        Connection "upgrade";
   }

不用改http节。
直接改虚拟主机的配置文件即可

server {
    listen 80;
    server_name socket.example.com;
    location / {
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:18080;
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏