在生产模式下部署Sails应用程序时无法识别http.trustProxy标志

时间:2018-09-14 13:40:39

标签: sails.js

我有一个Sails 1.0.2应用程序,它在Ubuntu 18.04.1 LTS实例上运行。此外,反向代理(Apache)将HTTPS(443)请求从公共端重定向到我指定的Sails端口(在我的情况下为4433)。

当我使用sails lift --port=4433提起应用程序时,此方法工作正常,CLI指出该应用程序正在侦听端口4433-当我通过https(/:443)从外部访问我的应用程序时,可以看到我的应用程式。

根据Sails文档,我在env/production.js中设置了生产环境,并尝试通过node app.js --prod部署应用程序。到目前为止,至少在CLI声明下,该应用程序还在侦听端口4433(与之前一样)也有效。有一个警告:If your app is behind a proxy or load balancer [...], you may also need to set sails.config.http.trustProxy to true.。好吧,我做到了-进行了三重检查,production.js文件的trustProxy未注释/设置为true。

最终,当我使用--prod部署了sails应用程序后尝试访问该网站时,我的浏览器出现了too many redirects错误。

所以我的问题是,为什么在我的production.js中忽略sails.config.http.trustProxy标志-还是不是问题的原因?


Official sails.js documentation / deployment

1 个答案:

答案 0 :(得分:1)

发现了问题,以备将来参考:在stagingproduction环境中,sails hooks / custom.js hook根据其子域转发GET请求。就我而言,这没有用,因为我没有www.myapp.com网域,而是类似myapp.department.university.edu.com的域名。

通过取消注释此转发规则https://api.highcharts.com/highcharts/series.column.enableMouseTracking,现在一切正常。

因此http.trustProxy标志与该问题完全无关。