将应用程序部署到Elastic Beanstalk时,是否可以禁用Phusion Passenger(Standalone)显示的错误页面?特别是在生产中。这个页面包含一个堆栈跟踪以及暴露的环境变量......在我看来这很危险。
重现这一点的快速方法是引入语法错误(这不是唯一的方法)。
我可以see here (link)这是可能的...只是不确定你如何在EB上做同样的事情。为了避免将来发生断链,我只想引用这里的对话......一个人问:
我似乎记得在某个地方读过,可以禁用它 乘客启动错误页面,显示您是否遗失了宝石等。如果我 回想一下,我认为Phusion的家伙们说的是 生产环境中的默认行为是抑制 此错误页面显示堆栈跟踪等。有没有办法 使用当前版本的Passenger禁用此错误页面?
Phusion的哪一位回复......
现在您只需编辑模板即可 LIB / phusion_passenger /模板。所有错误也会记录到Web上 服务器日志文件。
虽然回应是一个积极的迹象,但它并没有真正解决我的问题...这是如何在EB上做的,我们都(几乎)知道EB比你的典型自我更紧张管理服务器。
答案 0 :(得分:2)
您需要添加一个Passenger指令,以防止Passenger公开有关您的Web服务器的潜在可利用详细信息。执行此操作的方法是在Web服务器配置上添加指令,以防止Passenger在用户上显示回溯和转储环境变量。例如,如果使用Apache部署Rails应用程序,则只需在Virtualhost配置块上添加以下指令
<VirtualHost *:80>
...
PassengerFriendlyErrorPages off
对于AWS EBS,我并不是特别熟悉它,但是快速的Google搜索显示您必须将此配置放在.ebextensions
目录中的Apache Vhosts配置中。由于您已经成功部署了应用,因此您可能已经完成了此操作。无论如何我都会为了别人的利益而展示它。例如,如果你正在使用Apache,你可能在.ebextensions/vhosts.config
files:
"/etc/httpd/conf.d/vhosts.conf":
mode: "000644"
owner: root
group: root
encoding: plain
content: |
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/ruby/example/
</VirtualHost>
PassengerFriendlyErrorPages off
更新:您可以找到关闭友好错误页面的文档&#39; here