我尝试使用nginx设置nodejs。但是当客户端尝试连接时,它将失败并显示…
WebSocket connection to 'ws://www.mydomain.com/socket.io/1/websocket/KUv5G...' failed: Error during WebSocket handshake: 'Connection' header value is not 'Upgrade': keep-alive socket.io.js:2371
那么如何启用websocket通信呢?
我目前的Nginx配置
upstream mynodejsapp {
server 127.0.0.1:3000 max_fails=0 fail_timeout=10s weight=1;
ip_hash;
keepalive 512;
}
server {
listen 80;
listen [::]:80 default_server ipv6only=on;
index index.html;
server_name mydomain.com www.mydomain.com;
keepalive_timeout 10;
gzip on;
gzip_http_version 1.1;
gzip_vary on;
gzip_comp_level 6;
gzip_proxied any;
gzip_buffers 16 8k;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
location / {
proxy_pass http://mynodejsapp;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_cache_bypass $http_upgrade;
proxy_http_version 1.1;
proxy_redirect off;
proxy_next_upstream error timeout http_500 http_502 http_503 http_504;
proxy_connect_timeout 5s;
proxy_read_timeout 20s;
proxy_send_timeout 20s;
proxy_buffers 8 32k;
proxy_buffer_size 64k;
}
location ~ ^/(images/|img/|javascript/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.ico) {
root /var/www/mynodejsapp;
access_log off;
expires 1h;
}
fastcgi_param APPLICATION_ENV production;
}
首先,将您的nginx服务器升级到1.3或更高版本。
其次,我的nginx conf有效。您可以关注我的conf。
server {
listen 80;
server_name jn.whattoc.com;
location / {
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:4050/;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
错误:无法启动连接:错误:WebSocket无法连接。在服务器上找不到连接,endpoint可能不是信号器endpoint,服务器上不存在连接ID,或者存在阻止WebSocket的代理。如果有多台服务器,请检查是否启用了粘性会话。 WebSocketTransport.js:49WebSocket连接到“ws://xxxxxx/生产/网络服务/集线器/spreadhub”失败: Angular.t
我希望构建一个节点应用程序,将实现以下目标: null
我正在使用套接字。io,应用程序由AWS提供。我收到一个浏览器控制台错误: websocket.js:54 WebSocket 连接到 'wss://www.tidee.com/socket.io/?EIO=4 客户代码: 服务器代码: 在 AWS 中,安全组接受端口 443,负载均衡器侦听端口 443。 应用程序在本地运行时工作(状态 101),并使用 协议。
我知道,这个问题已经在不同的论坛上被问了很多次,但我仍然无法找到一个解决方案,这解决了我的问题...情况:我们在服务器上有一个nginx、php-fpm和MySQL堆栈。服务器位于nginx反向代理之后。问题是,在上游服务器上有干净的错误日志,而在反向代理上,我得到了多条消息 连接到>上游,客户端:+++++++++++,服务器:domain.com,请求:“Get>/files/imagecac
使用 jar 包 , 连接 websocket, 用域名的方式连接失败, 中间有通过 nginx 转发 用浏览器的控制台 new Websocket(wss://域名) 已经成功 nginx 配置正常的 , 用于 websocket 的配置添加了 使用 ws://域名 方式报 400 错误 用 wss://域名 方式 nginx 连请求都没收到 域名是买的, 是能通过验证的 使用 http 直接连
问题内容: 我使用NodeJS创建了一个应用程序,并且正在使用ws模块。如果我在本地主机上测试该应用程序,则它可以正常工作,并且连接websockets没有任何问题。现在,我已将应用程序上载到Openshift,当我尝试从客户端访问该应用程序时,它返回,这无法建立与Websocket的连接。 如果我在应用程序中拖入腻子, 则会收到 以下消息: 调试:这种类型的响应一定不能有主体。 忽略传递给end