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

Wai*_*ein 5 nginx laravel amazon-elastic-beanstalk

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

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

然后我执行“be deploy”命令来部署我的应用程序。但 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;
      }
Run Code Online (Sandbox Code Playgroud)

Mar*_*cin 6

您尝试设置的配置文件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;
}
Run Code Online (Sandbox Code Playgroud)

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

Solution I used
Run Code Online (Sandbox Code Playgroud)

我用过这个并且有效。 .platform/nginx/conf.d/elasticbeanstalk/laravel.conf