微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用Sails 1,nginx和node进行反向代理非常依赖于版本,如何解决?

如何解决使用Sails 1,nginx和node进行反向代理非常依赖于版本,如何解决?

我希望使用Nginx作为反向代理在AWS ubuntu服务器上更稳定地部署Sails 1应用程序。

目标:

要对我们的应用进行非版本依赖的部署。

尤其是:

我们在AWS服务器上有一个应用程序。

应用程序详细信息包括

  • 专注于移动
  • 启用了网络套接
  • 使用Nginx的反向代理
  • 应用与pm2保持一致

部署详细信息包括

问题:

我只能使逆向代理与帆,Nginx和node的上述版本一起使用。其他任何组合均导致应用服务器出现403错误。投放应用后,对服务器的邮递员GET请求直接返回“ sails.sid” cookie。但是,当通过任何其他反向代理软件组合提供应用程序服务时,GET头中不会再出现“ sails.sid” cookie。我用apache2反向代理收到了相同的no cookie GET请求。

当我直接点击应用程序(而不是通过反向代理)时,Cookie正常返回。

我尝试过的事情

  • node,sails1,Nginx,apache2的不同版本
  • 节点版本> 10.22.0导致错误

该命令的节点> 10.22.0中存在一个已知的弃用

link to node deprecation

The http module OutgoingMessage.prototype._headers and OutgoingMessage.prototype._headerNames properties are deprecated.

这似乎破坏了Sails应用程序对标头的Nginx反向代理处理。

我还没有看到Nginx的修复程序,尤其是Nginx版本1.16.0会破坏标头。

我尝试过的其他事情

  • 所有权和权限(chmod,chown)都可以
  • apache2反向代理:与Nginx 1.16.0相同的问题:没有标题。即反向代理可以工作,但是应用程序通过apache2反向代理返回了403代码
  • 版本控制的各种排列:sail,Nginx,node

我可以尝试的事情

在sail的节点模块中,根据此旧语法,可能会有潜伏的标头代码。可以在适当的语句上用new-for-old替换它。只是一个想法。

我想要的东西:

向我展示如何使该应用程序正常工作,即以不依赖于sail,Nginx和node的这些特定版本的方式从原始Postman GET请求中获取所有标头。

如果我错过了明显的东西,那就更好了。

解决方法

我在节点11.15.0上使用了类似的设置,并且可以正常工作。

您的nginx配置是什么?

,

这是我尝试在注释中添加的服务器块代码。请记住,您也必须将其符号链接到/ etc / nginx / sites-enabled文件夹。这适用于直接HTTP请求。请注意,您的应用程序只会看到客户端“ 127.0.0.1”。如果您想从客户端获取IP地址,则需要从Nginx反向代理服务器本身获取IP地址。

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";

        }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。