Beanstalk 将 nginx conf 文件放入错误的目录

问题描述 投票:0回答:2

我按照文档替换了默认的 nginx.conf 文件。所以树看起来像这样:

app_root/
├─ .platform/
│  ├─ nginx/
│  │  ├─ nginx.conf
│  │  ├─ conf.d/
│  │  │  ├─ my_custom_conf.conf

虽然一切看起来都正确,但部署后,配置最终从 .platform 移动到

/var/proxy/staging
;事实上,eb-engine.log 报告了这一点:

[INFO] Running command /bin/sh -c cp -rp /var/app/staging/.platform/nginx/. /var/proxy/staging/nginx

这意味着真正的配置文件

/etc/nginx/nginx.conf
仍然是默认的。

amazon-elastic-beanstalk aws-codepipeline
2个回答
1
投票

您可以在AWS文档

中找到答案
  • /var/app/staging/
    – 在部署期间处理应用程序源代码的地方。
  • /var/app/current/
    – 应用程序源代码处理后运行的地方。

部署新的代码版本时,

/var/app/staging
将用于运行构建命令并测试设置。它还用于测试 nginx 配置文件。如果部署成功,
/staging
中的代码将移至
/current
,nginx配置将移至
/etc/nginx/nginx.conf

/etc/nginx/nginx.conf
是活动配置文件。您可以使用
nginx -t
来查看这一点。

[ec2-user@ip-172-31-1-161 ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

但是,

/etc/nginx/nginx.conf
的内容不是默认配置。无论您在应用程序目录的
/.platform/nginx/nginx.conf
中放入什么,最终都会在
/etc/nginx/nginx.conf
中。

eb-engine.log
中,您可以看到暂存中的配置检查。如果成功,您将看到
cp
命令,将文件复制到
/etc/nginx
:

2022/09/07 14:23:03.027695 [INFO] Running command /bin/sh -c /usr/sbin/nginx -t -c /var/proxy/staging/nginx/nginx.conf
2022/09/07 14:23:03.078615 [INFO] nginx: the configuration file /var/proxy/staging/nginx/nginx.conf syntax is ok
nginx: configuration file /var/proxy/staging/nginx/nginx.conf test is successful
2022/09/07 14:23:03.078683 [INFO] Running command /bin/sh -c cp -rp /var/proxy/staging/nginx/* /etc/nginx

0
投票

今天遇到了完全相同的问题。

eb-engine.log
显示了这一点:
[INFO] Running command /bin/sh -c cp -rp /var/app/staging/.platform/nginx/. /var/proxy/staging/nginx
此后再也没有出现过 nginx 相关日志。

仔细研究了AWS文档很长时间,我发现了这个

AWS Docs

看来,如果它在 Amazon Linux 2 上,并且您正在使用 Docker Compose,那么您将无法设置 Nginx 服务器。

这与其他答案的日志差异一致,因为 Nginx 从未被提出来检查已复制到

.conf
文件的语法:

[INFO] nginx:配置文件 /var/proxy/staging/nginx/nginx.conf 语法没问题

© www.soinside.com 2019 - 2024. All rights reserved.