Node.js 使用sails 1、nginx和node的反向代理非常依赖于版本,如何修复?
我希望在AWS ubuntu服务器上使用nginx作为反向代理更稳定地部署sails 1应用程序 目标: 使我们的应用程序不依赖于版本 尤其是: 我们在AWS服务器上有一个应用程序 应用程序详细信息包括:Node.js 使用sails 1、nginx和node的反向代理非常依赖于版本,如何修复?,node.js,nginx,apache2,sails.js,Node.js,Nginx,Apache2,Sails.js,我希望在AWS ubuntu服务器上使用nginx作为反向代理更稳定地部署sails 1应用程序 目标: 使我们的应用程序不依赖于版本 尤其是: 我们在AWS服务器上有一个应用程序 应用程序详细信息包括: 以手机为中心 已启用WebSocket 使用nginx的反向代理 应用程序与pm2保持一致 部署详细信息包括 AWS ubuntu 18.04 LTS mysql 8.x数据库 帆1.2.4 nginx 1.14.0 节点8.4.0 问题: 我只能让反向代理与上述版本的sails、ng
- 以手机为中心
- 已启用WebSocket
- 使用nginx的反向代理
- 应用程序与pm2保持一致
- AWS ubuntu 18.04 LTS
- mysql 8.x数据库
- 帆1.2.4
- nginx 1.14.0
- 节点8.4.0
- node、sails1、nginx和apache2的不同版本
- 节点版本>10.22.0会导致错误
- 所有权和权限(chmod、chown)正常
- apache2反向代理:与nginx 1.16.0的问题相同:没有头。也就是说,反向代理可以工作,但应用程序通过apache2反向代理返回403代码
- 版本控制的各种排列:sails、nginx、node
如果我遗漏了一些显而易见的东西,那就更好了。我在node 11.15.0中使用了类似的设置,它可以正常工作
您的nginx配置是什么?这是我试图在注释中输入的服务器块代码。请记住,还必须将其符号链接到/etc/nginx/sites enabled文件夹。这适用于直接HTTP请求。请注意,您的应用程序将只看到客户端“127.0.0.1”。如果您想从您的客户机中获取IP地址,则需要从nginx反向代理服务器本身获取它们
server {
listen 80;
server_name yourDomain.com ;
location / {
proxy_pass "http://127.0.0.1:1337";
proxy_http_version 1.1;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header Port $server_port;
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_request_headers on;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /socket.io/ {
proxy_pass "http://127.0.0.1:1337/socket.io/";
proxy_http_version 1.1;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header Port $server_port;
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_request_headers on;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
当前正在使用服务器块配置和纯HTTP,只有一个后端服务器。如果您愿意,我可以在可用的站点上传backendServer.conf文件。这可能有助于检查它。下面是/etc/nginx/sites available文件夹中的代码。请记住,您必须将其符号链接到启用站点的文件夹。前半部分:服务器{listen 80;server\u name yourDomain.com;位置/{proxy\u pass“”;proxy_http_version 1.1;proxy_重定向关闭;proxy_set_header主机$Host;proxy_set_header端口$server_Port;proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$proxy添加_-Forwarded_;proxy_set_header X-NginX-proxy true;proxy_-pass请求_header打开;proxy_set_-header打开der Upgrade$http\U Upgrade;代理集\U头连接“升级”}后半部分:location/socket.io/{proxy\u pass“”;proxy_http_version 1.1;proxy_重定向关闭;proxy_set_header主机$Host;proxy_set_header端口$server_Port;proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$proxy添加_-Forwarded_;proxy_set_header X-NginX-proxy true;proxy_-pass请求_header打开;proxy_set_-header打开der Upgrade$http\U Upgrade;proxy\U set\U header Connection“Upgrade”;}}}好的,尝试一下,对于位置/,使用:将上游定义为:``上游应用程序节点{服务器xxx.xxx.xxx.xxx:1337;keepalive 64;}````并在代理传递之后添加这些节点:``代理传递`;代理\传递\头集Cookie;代理通过头X-XSRF-TOKEN;代理读取超时240s```
server {
listen 80;
server_name yourDomain.com ;
location / {
proxy_pass "http://127.0.0.1:1337";
proxy_http_version 1.1;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header Port $server_port;
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_request_headers on;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /socket.io/ {
proxy_pass "http://127.0.0.1:1337/socket.io/";
proxy_http_version 1.1;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header Port $server_port;
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_request_headers on;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}