gpt4 book ai didi

node.js - "This site can’ t be reached"using Nginx as reverse proxy for Express Nodejs

转载 作者:搜寻专家 更新时间:2023-11-01 00:04:18 26 4
gpt4 key购买 nike

我无法从外部访问我的 Node 服务器。在内部,我可以很好地访问它,但我无法这样做。

这是我的 nginx 配置。我只想使用我的外部 IP(例如,133.21.29.21)访问我的网站

server {
listen 80 default_server;
listen [::]:80 default_server;
listen 2500;

location / {
proxy_pass http://127.0.0.1:3005;
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;
}
}

服务器代码

    app.server.listen(3003, "0.0.0.0", () => {
console.log(app.server.address());
});

我目前正在 3003 端口上运行。我已经尝试过切断 nginx 配置并更改我的服务器代码(更改端口,省略“0.0.0.0”,使用“127.0.0.1”)但我没有任何运气。

我一直在尝试通过 my-external-ip:2500 访问我的服务器,但我也尝试过通过其他端口访问。

我已经禁用了 ufw 防火墙,但仍然没有成功。本地 curl 效果很好。

我做错了什么?

最佳答案

我认为您缺少代理重定向

看看下面的示例 NGINX 配置文件,位置/{ } 指向端口 9080 上的 Node 服务器,它通过导航到 https://... .com 来工作

server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 301 https://$host$request_uri;
}

map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}

server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;

ssl on;
ssl_certificate /etc/letsencrypt/live/thedomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/thedomain.com/privkey.pem;

access_log /var/log/nginx/thedomain.access.log;
error_log /var/log/nginx/thedomain.error.log;

server_name _;

root /var/www/html;

index index.html;

gzip on;
gzip_proxied any;
gzip_types text/css text/javascript text/xml text/plain application/javascript application/x-javascript application/json;

location /.well-known/ {
try_files $uri $uri/ =404;
}

location /jenkins {
include /etc/nginx/proxy_params;
proxy_pass http://localhost:8080;
proxy_read_timeout 90s;
proxy_redirect http://localhost:8080 https://www.thedomain.com/jenkins;
}

location /wss/pforex {
include /etc/nginx/proxy_params;
proxy_pass http://localhost:9190;

proxy_http_version 1.1;
proxy_read_timeout 90s;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_redirect http://localhost:9190 https://www.thedomain.com/wss/pforex;
}

location / {
include /etc/nginx/proxy_params;
proxy_pass http://localhost:9080;
proxy_read_timeout 90s;
proxy_redirect http://localhost:9080 https://www.thedomain.com;
}
}

关于node.js - "This site can’ t be reached"using Nginx as reverse proxy for Express Nodejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49663343/

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