Elastic Beanstalk - 自定义 Nginx 配置文件 - PHP Web 应用程序
Posted
技术标签:
【中文标题】Elastic Beanstalk - 自定义 Nginx 配置文件 - PHP Web 应用程序【英文标题】:Elastic Beanstalk - Customize Nginx configuration files - PHP Web Application 【发布时间】:2020-12-15 21:48:05 【问题描述】:beanstalk 文档并不清楚在部署 php 应用程序时如何以及什么是自定义 nginx 配置的最佳方式。
我尝试了多种方法,例如包含一个文件 /etc/nginx/conf.d/01-security.conf,如下所示:
files:
/etc/nginx/conf.d/01-security.conf:
mode: “000644”
owner: root
group: root
content: |
add_header X-Frame-Options "SAMEORIGIN" always ;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
always;
add_header X-Cache-Status $upstream_cache_status;
我尝试了其他替代方法,但似乎都没有奏效。我有点困惑,因为 beanstalk 没有给出任何关于如何为 PHP 完成的明确方向?我见过人们使用不同的策略,其中一些早在 2018 年、2017 年......
我可以使用container_commands替换配置,然后重启nginx,但是有什么方法可以添加更多的配置文件或者修改原来的?
【问题讨论】:
【参考方案1】:您的/etc/nginx/conf.d/01-security.conf
无法正常工作的一个可能原因是您使用的是Amazon Linux 2 (AL2)。但是,该设置文件适用于基于 AL1 的旧 EB 平台。
对于 AL2,nginx 设置应该在.platform/nginx/conf.d/
中,而不是在.ebextentions
中,如docs 中所示。
因此,您可以拥有以下 .platform/nginx/conf.d/myconfig.conf
的内容:
add_header X-Frame-Options "SAMEORIGIN" always ;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
always;
add_header X-Cache-Status $upstream_cache_status;
以上是示例。我无法验证这些设置是否真的有效,但在我看来,您使用的是 AL2,而不是 AL1。在这种情况下,您为 nginx
配置文件使用了错误的文件夹。
【讨论】:
以上是关于Elastic Beanstalk - 自定义 Nginx 配置文件 - PHP Web 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
AWS Elastic Beanstalk:将自定义日志添加到 CloudWatch?
Amazon Elastic Beanstalk 如何采用自定义 python 命令?