gpt4 book ai didi

node.js - Ubuntu 服务器上的 Nodejs/Socket.io 与 Nginx 反向代理 - "failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT"

转载 作者:太空宇宙 更新时间:2023-11-03 23:56:35 28 4
gpt4 key购买 nike

我一直在尝试在我的家庭 Ubuntu 服务器上部署我的聊天应用程序。当我使用内部 IP 或本地服务器主机名连接到它时,它在本地工作。

我正在使用 nginx 反向代理从 http://localhost:3000 进行切换到我的外部域,以便我可以通过外部互联网访问它: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";
}
}

关于node.js - Ubuntu 服务器上的 Nodejs/Socket.io 与 Nginx 反向代理 - "failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56844280/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com