Amazon Linux 2环境AWS Elastic Beanstalk NGINX自定义配置不生效求助
解决方案
- 确认部署包结构正确
你最终上传到Elastic Beanstalk的部署包必须是ZIP格式,.platform目录需放在ZIP根目录,而非内置在JAR包内或其他子路径下,正确结构如下:
大部分Java项目该问题都是因为Gradle/Maven打包时未将源码根目录的部署包根目录 ├── .platform │ └── nginx │ └── conf.d │ └── my_custom_config.conf └── 你的应用.jar.platform复制到最终部署包根目录导致,需调整构建脚本配置,确保打包时包含该目录。 - 检查配置文件命名与优先级
Nginx会按字典顺序加载conf.d下的配置文件,默认的00_application.conf优先级高于以字母开头的配置文件,如果你需要覆盖默认配置,可将你的自定义配置文件重命名为01_custom.conf这类数字开头的名称,保证加载顺序在默认配置之后。 - 验证配置文件权限与语法
自定义.conf文件需保证至少拥有读权限,避免权限过高或过低导致Nginx无法读取;配置上传前可本地执行nginx -t -c <你的配置文件路径>验证语法合法性,语法错误会导致配置被自动忽略。 - 检查EB CLI部署规则
如果你使用EB CLI部署,查看.elasticbeanstalk/config.yml中的exclude/include规则,确认没有将.platform目录排除在部署包外。 - 查看部署日志定位问题
部署完成后可通过EB控制台或eb ssh登录实例,查看/var/log/eb-engine.log日志,搜索.platform或nginx相关条目,可直接看到配置复制过程中的报错信息。
内容的提问来源于stack exchange,提问作者Hugo
相关产品推荐
相关产品推荐

