有很多情况我们需要在 AWS beanstalk 环境中覆盖 nginx conf。
- 设置最大文件附件
- 强制 http 到 https
- 为不同的静态资源设置不同的缓存过期时间
- 设置 WebSocket
- gzip 文件类型
- 等等等等
AWS Support 建议使用 nginx.conf,它是 beanstalk 应用程序的副本,方法是查看实例中的 /etc/nginx/nginx.conf。这将用作基础,然后添加新的配置或块。然后在项目中使用 .ebextensions/nginx/nginx.conf 和这个内容。但是,最大的问题是,如果基础 nginx.conf 被 AWS 更改,那么可能很难首先知道它何时更改,然后重复复制它然后添加覆盖的步骤。像这样的东西
大多数网络搜索提供的其他选项是使用 container_commands 并在 appdeploy 或 configdeploy 中创建文件 在 container_commands 中,人们建议修改 /tmp/deployment/config/#etc#nginx#conf.d#00_elastic_beanstalk_proxy.conf 类似这样的东西
这种方法的问题在于它仅在部署应用程序时才有效,而不是在任何 beanstalk 配置发生更改时(例如更改 env var)。
我的问题是覆盖 nginx 配置的更好的推荐方式。