首页 > 解决方案 > AWS Elasticbeanstalk 使用 .platform 覆盖 Nginx 配置不起作用

问题描述

我正在将我的 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;
      }

标签: laravelnginxamazon-elastic-beanstalk

解决方案


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;
}

如果它不起作用,您可以检查 nginx 登录/var/log或 nginx 配置文件夹以检查文件是否正确放置在 nginx 配置文件夹中。

Solution I used

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


推荐阅读