具有Nginx反向代理的Ubuntu服务器上的Nodejs / Socket.io-“失败:连接建立错误:net :: ERR_CONNECTION_TIMED_OUT”

x17安德鲁71x

我一直在尝试在我的家用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();

更新:-注意:我刚刚从工作计算机连接到它,并且它起作用了吗?但是在尝试使用外部地址时,它在我自己的网络中不起作用吗?那是怎么回事?

Jairo Malanay

我可以使用我的配置使其工作。您需要考虑重定向和代理

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章