多个节点实例、NGINX 反向代理、服务页面、post 请求出现 404 错误?
Multiple node instances, NGINX reverse proxy, serves page, 404 error on post requests?
所以我的堆栈 运行 在 Digital Ocean droplet 上。初始 node.js 申请在 https://domain_name.com/ 送达。请求通过 NGINX 反向代理处理到端口 3000。
我现在在端口 3001 上有第二个应用程序 运行;这两个实例在 PM2 中都是 运行。
通过 https://domain_name.com/cards/ 到达第二个应用程序。
访问此地址时,它会按预期传送第一页。但是,当发出 POST 请求时。地址 https://domain_name.com/cards/api_route/。浏览器中的控制台显示 404 错误。然而,这在 Localhost 节点实例上完美运行。
我的站点启用 'default' 文件包含以下位置块。
HTTPS — proxy all requests to the Node app
server {
# Enable HTTP/2
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name domain_name.com;
# Use the Let’s Encrypt certificates
ssl_certificate /etc/letsencrypt/live/domain_name.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain_name.com/privkey.pem;
# Include the SSL configuration from cipherli.st
include snippets/ssl-params.conf;
add_header X-Frame-Options SAMEORIGIN;
add_header X-XSS-Protection "1; mode=block";
location /card {
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://localhost:3001/;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
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://localhost:3000/;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
}
然而 api 路线
的路径是正确的
问题已解决....
位置块
位置/卡片{
需要
位置/卡片/{
之前正在搜索 https://domain_name.com/cards
已发送页面并且:
https://domain_name.com/cards/
返回错误:无法获取 //
所以我的堆栈 运行 在 Digital Ocean droplet 上。初始 node.js 申请在 https://domain_name.com/ 送达。请求通过 NGINX 反向代理处理到端口 3000。
我现在在端口 3001 上有第二个应用程序 运行;这两个实例在 PM2 中都是 运行。 通过 https://domain_name.com/cards/ 到达第二个应用程序。
访问此地址时,它会按预期传送第一页。但是,当发出 POST 请求时。地址 https://domain_name.com/cards/api_route/。浏览器中的控制台显示 404 错误。然而,这在 Localhost 节点实例上完美运行。
我的站点启用 'default' 文件包含以下位置块。
HTTPS — proxy all requests to the Node app
server {
# Enable HTTP/2
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name domain_name.com;
# Use the Let’s Encrypt certificates
ssl_certificate /etc/letsencrypt/live/domain_name.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain_name.com/privkey.pem;
# Include the SSL configuration from cipherli.st
include snippets/ssl-params.conf;
add_header X-Frame-Options SAMEORIGIN;
add_header X-XSS-Protection "1; mode=block";
location /card {
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://localhost:3001/;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
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://localhost:3000/;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
}
然而 api 路线
的路径是正确的问题已解决....
位置块
位置/卡片{
需要
位置/卡片/{
之前正在搜索 https://domain_name.com/cards
已发送页面并且:
https://domain_name.com/cards/
返回错误:无法获取 //