gpt4 book ai didi

node.js - nginx 服务器将自定义端口上的请求转发到 Node 应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 14:32:36 25 4
gpt4 key购买 nike

我有一个运行 nginx 的 VPS 服务器,我还有一个在端口 8000 上运行的 Node 应用程序。nginx 服务器容纳我的 PHP 应用程序,并在默认的网络服务器端口上运行良好。

我有一个指向服务器 ip 的自定义域名。

我已经安装了 let's encrypt 来处理我的 https 流量,它适用于我的 php 应用程序。

我必须在端口 8080 上捕获 https 流量并将请求转发到端口 8000 上的 Node 应用。

我已经尝试了大多数 stackoverflow 的东西。我不知道我做错了什么。

下面是我的 nginx 服务器 block 的副本。

 server {
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/repairspots.org/fullchain.pem; # managed$
ssl_certificate_key /etc/letsencrypt/live/repairspots.org/privkey.pem; # manag$
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}




// i need to get this portion right

server {
listen [::]:8080 ssl ipv6only=on; # managed by Certbot
listen 8080 ssl;
server_name 0.0.0.0;

ssl_certificate /etc/letsencrypt/live/example.org/fullchain.pem; # managed$
ssl_certificate_key /etc/letsencrypt/live/example.org/privkey.pem; # manag$
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

error_page 497 https://0.0.0.0:8080$request_uri;

# pass requests to port 8000 where our other node server is running
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://0.0.0.0:8000;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
}

最佳答案

我能够通过以下解决问题。

我创建了/etc/nginx/conf.d/proxy.conf 并粘贴了下面的服务器 block 。

server {
listen 8080 ssl;
listen [::]:8080 ssl ipv6only=on;

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed$
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # manag$
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

error_page 497 https://$host:$server_port$request_uri;#enforces https redirect on http traffic

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_ssl_session_reuse off;
proxy_set_header X-Forwarded-Ssl on; #needed incase redirects comes from http
proxy_set_header X-NginX-Proxy true;
rewrite ^/?(.*) /$1 break;
proxy_pass http://127.0.0.1:8000; #node server
proxy_redirect off;

}


}

这是我以前根本没有做的一件事。您需要在您正在监听的端口上接受互联网流量。运行以下与端口号内联的命令。

sudo iptables -A INPUT -p tcp --dport 9000 -j ACCEPT

关于node.js - nginx 服务器将自定义端口上的请求转发到 Node 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51334571/

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