我正在尝试将我的节点代理从端口移动8080到80墙壁并撞墙。我希望我的 RESTful API 位于监听端口 80 的 nginx 反向代理之后/api/path。
(8080某些企业用户在过度热情的防火墙后面无法访问端口。)
我曾经将请求指向https://domain.tld:8080/到http://localhost:1337。没有问题通过:
server {
listen 8080;
server_name domain.tld;
ssl on; #some other SSL config removed for clarity
location / {
proxy_redirect off;
proxy_pass_header Server;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_connect_timeout 5;
proxy_read_timeout 240;
proxy_intercept_errors on;
proxy_pass http://127.0.0.1:1337;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我试图通过以下方式将它移动到位置api/path/并远离端口8080:
server {
listen 443 ssl http2; …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 nginx 为我的节点应用程序构建一个代理,认为如果节点应用程序失败或在端口上不可用,这会给我错误页面。
节点应用程序继续运行127.0.0.1:1337,我正在收听mydomain:8080并转发它。
server {
listen 8080;
server_name mydomain;
access_log /log/path/logging.log;
root /path/to/root/;
error_page 400 401 402 403 404 500 501 502 503 504 /error/index.html;
location / {
proxy_redirect off;
proxy_pass_header Server;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_connect_timeout 5;
proxy_read_timeout 240;
proxy_intercept_errors on;
proxy_pass http://127.0.0.1:1337;
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我关闭节点应用程序并请求mydomain:8080. 不过,这是 nginx 的预期行为。我想要的是一个我可以定义的页面,该页面将在节点应用程序的服务关闭时显示。
任何想法如何做到这一点?