【发布时间】:2020-08-18 05:08:49
【问题描述】:
我在单实例 Elastic Beanstalk 环境中托管我的 Java Web 应用程序,并添加了几个 ebextension 文件,这些文件在每次部署时成功地为我创建了配置文件。但是,我找不到让 Beanstalk 在 /etc/nginx 或 /etc/nginx/conf.d 目录中添加新配置的方法。
我按照此处描述的步骤操作:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/https-singleinstance-java.html
我的部署包结构如下:
$ zip -r deploy.zip api-1.0-SNAPSHOT-all.jar .ebextensions
adding: api-1.0-SNAPSHOT-all.jar (deflated 11%)
adding: .ebextensions/ (stored 0%)
adding: .ebextensions/ssl-certificates.config (deflated 37%)
adding: .ebextensions/https-instance-securitygroup.config (deflated 38%)
adding: .ebextensions/nginx/ (stored 0%)
adding: .ebextensions/nginx/conf.d/ (stored 0%)
adding: .ebextensions/nginx/conf.d/https.conf (deflated 61%)
我的文件几乎是上述指南中示例的一对一副本。
在部署期间,我的两个 *.config 文件都成功执行,但缺少 /etc/nginx/conf.d/https.conf。我试图通过删除 .ebextensions/nginx 目录并将其替换为另一个从头开始创建 /etc/nginx/conf.d/https.conf 的 .config 文件来解决此问题,但这并没有帮助,并且该文件仍然丢失。
我通过 ssh 连接到我的 EC2 实例,这是我在 /var/log/eb-engine.log 中找到的内容:
2020/05/03 19:42:37.754375 [INFO] Executing instruction: configure proxy Nginx
2020/05/03 19:42:37.754393 [WARN] skipping nginx folder under .ebextensions
2020/05/03 19:42:37.754670 [INFO] No plugin in cfn metadata.
我觉得我可能在这里遗漏了一些非常明显的东西,但令人惊讶的是我找不到任何解决问题的方法。想法?谢谢!
【问题讨论】:
-
我也使用 post-deploy hook 来设置类似的 proxy_pass。最近我发现,如果通过更改 Elastic Beanstalk > Environments > "env-name" > Configuration > Software 中的环境变量重新启动 webapp,Beanstalk 会删除自定义 ngixn 配置文件。你们有同样的问题,ngixn 配置丢失了吗?
标签: amazon-web-services nginx amazon-elastic-beanstalk