如何在 Elastic Beanstalk 中隐藏 Nginx 版本

How to hide nginx version in elastic beanstalk

我是 运行 平台 Ruby 2.2(Passenger Standalone)上的一个应用程序,希望从 HTTP headers 中隐藏 nginx 版本。我没有使用 Docker。其他 Stack Overflow 答案建议将此添加到我的 .ebextensions

00_nginx.conf:

files:
  "/etc/nginx/conf.d/proxy.conf":
    mode: "000644"
    content: |
      http {
        server_tokens off;
        passenger_show_version_in_header off;
      }

但是这没有任何作用。我应该把文件放在不同的地方吗?

带有 Ruby 2.2 + Passenger Standalone 1.4.3 的 AWS Elastic Beanstalk 不使用(原始)Nginx 1.6.2。它使用 Passenger Standalone 1.4.3 服务器,它是 Nginx 1.6.2 的修改版本。

所以,如果你想修改 Nginx 配置,你必须编辑 Passenger Standalone 配置。 Passenger Standalone 配置位于 $(passenger-config about resourcesdir)/templates/standalone/config.erb

您可以使用以下 .ebextensions:

00-passenger.config:

files:
  "/home/ec2-user/hide_passenger_version.sh" :
    mode: "000777"
    owner: ec2-user
    group: ec2-user
    content: |
      #!/bin/bash
      CONFIG_FILE=$(/opt/rubies/ruby-2.2.2/bin/passenger-config about resourcesdir)/templates/standalone/config.erb
      if ! grep -q "server_tokens off;" $CONFIG_FILE; then
        sed -i '/http {/a\
          server_tokens off;\
          passenger_show_version_in_header off;' $CONFIG_FILE
      fi

commands:
  00-hide-passenger-version:
    command: sh /home/ec2-user/hide_passenger_version.sh
    cwd: /home/ec2-user

以上配置将检查 server_tokens off; 的 Passanger 配置。如果未设置 server_tokens off;,我们会在 http {.

正下方添加 server_tokens off;passenger_show_version_in_header off;(追加)

之前:

$ curl -I http://itmustbeasecret.elasticbeanstalk.com/hello

HTTP/1.1 200 OK
Content-Length: 12
Content-Type: text/html;charset=utf-8
Date: Sat, 25 Jul 2015 14:21:27 GMT
Server: nginx/1.6.2 + Phusion Passenger 4.0.59
Status: 200 OK
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Powered-By: Phusion Passenger 4.0.59
X-XSS-Protection: 1; mode=block
Connection: keep-alive

之后:

$ curl -I http://itmustbeasecret.elasticbeanstalk.com/hello

HTTP/1.1 200 OK
Content-Length: 12
Content-Type: text/html;charset=utf-8
Date: Sat, 25 Jul 2015 14:03:23 GMT
Server: nginx + Phusion Passenger
Status: 200 OK
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Powered-By: Phusion Passenger
X-XSS-Protection: 1; mode=block
Connection: keep-alive

注意:以上配置仅在(重新)启动 Passenger 时有效。因此,您需要终止您当前的实例。