我一直在尝试在我的家用Ubuntu服务器上部署聊天应用程序。当我使用内部IP或本地服务器主机名连接到它时,它在本地工作。
我正在使用Nginx反向代理从http:// localhost:3000切换到我的外部域,以便可以通过Internet外部访问它:http : //tfmserver.dynu.net/
Nginx代理:
server {
listen 80;
listen [::]:80;
root /var/www/tfmserver.dynu.net/html;
index index.html index.htm index.nginx-debian.html;
server_name tfmserver.dynu.net;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
我似乎收到与以下类似的错误,但有时会有所不同,具体取决于我尝试修复它的方式:
WebSocket connection to 'ws://tfmserver.dynu.net/socket.io/?EIO=3&transport=websocket&sid=wQY_D0JOZm4VWGXgAAAA' failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT
要么
POST http://tfmserver.dynu.net/socket.io/?EIO=3&transport=polling&t=MklujE_&sid=fbdZir8lxOlMOZm6AAAA net::ERR_CONNECTION_TIMED_OUT
根据有关此错误的人的一些帖子,他们说Chrome尝试将其作为SSL进行尝试,但这种方式并未得到解决,但是我已将SSL添加到服务器和项目中,但无法解决问题。目前,我已将其删除,但如果可以的话,不介意将其重新添加。
我已经尽力解决了这里发布的所有其他可能出现的问题,但都没有解决这个问题。
我怎样才能使它在外部工作?我究竟做错了什么?
这是插座项目的相关部分。如果您还有其他需要帮助的地方,请告诉我-预先感谢!
服务器:
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);
server.listen(process.env.PORT || 3000, 'localhost');
客户:
var socket = io.connect();
更新:-注意:我刚刚从工作计算机连接到它,并且它起作用了吗?但是在尝试使用外部地址时,它在我自己的网络中不起作用吗?那是怎么回事?
我可以使用我的配置使其工作。您需要考虑重定向和代理
server {
listen 80;
server_name 11.111.111.111;
client_max_body_size 800M;
gzip on;
gzip_comp_level 6;
gzip_vary on;
gzip_min_length 1000;
gzip_proxied any;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_buffers 16 8k;
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://localhost:9000/;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location ~* \.io {
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://localhost:4001;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句