AWS Elasticbeanstalk 使用 .platform 覆盖 Nginx 配置不起作用

Posted

技术标签:

【中文标题】AWS Elasticbeanstalk 使用 .platform 覆盖 Nginx 配置不起作用【英文标题】:AWS Elasticbeanstalk overriding Nginx config using .platform is not working 【发布时间】:2020-11-04 03:19:27 【问题描述】:

我正在将我的 Laravel 应用程序部署到 AWS ElasticBeanstalk。我已经部署了它。现在,我正在尝试使用 .platform 文件夹覆盖“/etc/nginx/conf.d/elasticbeanstalk/php.conf”文件。

我在项目的根文件夹中创建了 .platform/etc/nginx/conf.d/elasticbeanstalk/php.conf 文件。然后我把配置内容放进去。

然后我部署我的应用程序执行“部署”命令。但是 Nginx 配置文件没有被覆盖。我的配置有什么问题,我怎样才能让它工作?

我也尝试使用 .ebextensions 创建具有以下内容的配置文件。该文件不是刚刚创建的。

files:
  /etc/nginx/conf.d/elasticbeanstalk/laravel.conf:
    mode: "000755"
    owner: root
    group: root
    content: |
      location / 
            try_files $uri $uri/ /index.php?$query_string;
            gzip_static on;
      

【问题讨论】:

这里提供的解决方案对您有用吗? 【参考方案1】:

您尝试设置的nginx 配置文件在Amazon Linux 1 (AL1) 中使用。

对于 AL2,应使用以下方式提供 nginx 配置文件 (aws docs):

.platform/nginx/conf.d/

或者如果你想覆盖主要的nginx 配置文件,使用

.platform/nginx/nginx.conf

因此,您可以尝试以下文件.platform/nginx/conf.d/laravel.conf,其内容为:

location / 
      try_files $uri $uri/ /index.php?$query_string;
      gzip_static on;

如果还是不行,可以查看/var/log或者nginx配置文件夹中的nginx日志,检查文件是否正确放置在nginx配置文件夹中。

Solution I used

我用过这个,它奏效了。 .platform/nginx/conf.d/elasticbeanstalk/laravel.conf

【讨论】:

@dryleaf 您可以使用 EB 设置的详细信息和任何相关错误消息提出新问题。

以上是关于AWS Elasticbeanstalk 使用 .platform 覆盖 Nginx 配置不起作用的主要内容,如果未能解决你的问题,请参考以下文章

在 AWS 上使用 ElastiCache 和 ElasticBeanstalk 配置 Redis

为啥要为 Docker 使用 AWS ECS 与 ElasticBeanstalk?

AWS-ElasticBeanstalk:在哪里可以找到 Beanstalk 自动创建的域名指向啥?

强制 https aws elasticbeanstalk

AWS Elasticbeanstalk 单实例强制 SSL 重定向循环

使用 Travis、AWS Elasticbeanstalk 和 Docker 构建失败