AWS Elastic Beanstalk with Ruby 2.2 + Passenger Standalone 1.4.3 不使用(原始)Nginx 1.6.2。它使用Passenger Standalone 1.4.3服务器,它是Nginx 1.6.2的修改版本。
所以,如果你想修改 Nginx 配置,你必须编辑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
上述配置将检查 Passanger 配置中的 server_tokens off;。如果server_tokens off; 未设置,我们在http { 下方添加server_tokens off; 和passenger_show_version_in_header off;(附加)http {。
之前:
$ 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
注意:上述配置仅影响乘客是否(重新)启动。因此,您需要终止您当前的实例。