在AWS Elastic Beanstalk上禁用Phusion Passenger(独立)错误页面?

Kin*_*ina 5 passenger amazon-web-services amazon-elastic-beanstalk

何时弹性豆茎部署应用程序时,是有可能禁用由乘客的Phusion(独立)中所示的错误页?特别是在生产中.这个页面包含一个堆栈跟踪以及暴露的环境变量......在我看来这很危险.

快速重现此方法会引入语法错误(这不是唯一的方法).

我可以在这里看到(链接)它是可能的......只是不确定你如何在EB上做同样的事情.为了避免将来出现断链,我将在这里引用对话......一个人问:

我似乎记得在某个地方阅读,可以禁用乘客启动错误页面,显示你是否遗漏了宝石等.如果我没记错,我认为Phusion人员说生产环境中的默认行为是禁止此错误页面显示堆栈跟踪等.有没有办法使用当前版本的Passenger禁用此错误页面?

哪个Phusion家伙回复...

现在您只需编辑lib/phusion_passenger/templates中的模板即可.所有错误也会记录到Web服务器日志文件中.

虽然响应是一个积极的迹象,但它并没有真正解决我的问题...这是如何在EB上做的,我们都(几乎)知道EB比典型的自我管理服务器更紧凑.

Kib*_*gon 2

您需要添加 Passenger 指令以防止 Passenger 暴露有关您的 Web 服务器的潜在可利用详细信息。执行此操作的方法是在 Web 服务器配置中添加一条指令,以防止 Passenger 显示回溯并转储用户的环境变量。例如,如果您的 Rails 应用程序是使用 Apache 部署的,那么您只需在 Virtualhost 配置块上添加以下指令

<VirtualHost *:80>
  ...
  PassengerFriendlyErrorPages off
Run Code Online (Sandbox Code Playgroud)

至于AWS EBS,我不是特别熟悉,但快速Google搜索显示您必须将此配置放入目录中的Apache Vhosts配置中.ebextensions。由于您已经成功部署了应用程序,因此您可能已经完成了此操作。无论如何,为了他人的利益,我都会展示它。例如,如果您使用 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
Run Code Online (Sandbox Code Playgroud)

更新:您可以在此处找到关闭“友好错误页面”的文档