gpt4 book ai didi

ruby - 如何在 Elastic Beanstalk 中隐藏 Nginx 版本

转载 作者:数据小太阳 更新时间:2023-10-29 07:52:18 24 4
gpt4 key购买 nike

我正在 Ruby 2.2 (Passenger Standalone) 平台上运行一个应用程序,并希望从 HTTP header 中隐藏 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;
}

但是这没有任何作用。我应该将文件放在不同的位置吗?

最佳答案

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 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; 没有设置,我们添加 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

注意:以上配置只影响 Passenger 是否(重新)启动。因此,您需要终止您当前的实例。

关于ruby - 如何在 Elastic Beanstalk 中隐藏 Nginx 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31603784/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com