【问题标题】:AWS Elastic Beanstalk Apply configuration file on nginx serverAWS Elastic Beanstalk 在 nginx 服务器上应用配置文件
【发布时间】:2020-10-30 18:31:14
【问题描述】:

我正在尝试在 ebs 中迁移我的应用程序,因为它已被弃用,我以前的平台是:

在 64 位 Amazon Linux / 2.9.8 上运行的 PHP 5.6

现在我要迁移到:

在 64 位 Amazon Linux 2 / 3.0.3 上运行的 PHP 7.4

此平台使用 Nginx 服务器而不是 Apache。

我能够部署我的应用程序,但问题是我的 .htaccess 配置文件已被弃用,我的 .ebextensions 配置文件也是如此。所以我丢失了设置,例如获取干净的 url 和从 http 到 https 的重定向。

我尝试通过放置相应的配置文件将 apache 配置转换为 Nginx,但显然它们没有效果。

我尝试了许多测试配置,得出的结论是平台没有读取我放置的配置。

我曾尝试使用这个小配置,它应该允许我列出“views”目录:

cleanurl.config

server {
location / views / {
    autoindex on;
}
}

我已经尝试将它放在以下文件夹中。

".ebextensions/cleanurl.config"

files:
    "/etc/nginx/conf.d/cleanurl.conf":
        mode: "000644"
        owner: root
        group: root
        content: |
              server {
                location / views / {
                autoindex on;
                }
             }

".platform/nginx/conf.d/cleanurl.config"

server {
location / views / {
    autoindex on;
}
}

但我没有得到结果。当我指向一个文件夹时,我总是得到 403 Forbidden。请帮忙。

提前致谢

【问题讨论】:

    标签: php nginx amazon-elastic-beanstalk


    【解决方案1】:

    经过尝试和尝试,我能够通过以下方式解决它:

    • 我把文件放在这个位置
    .platform/nginx/conf.d/elasticbeanstalk/cleanurl.conf
    
    • 像这样更改我的配置文件
    location/views/ {
       autoindex on;
    }
    

    现在一切正常。

    【讨论】:

      【解决方案2】:

      我尝试了许多测试配置,得出的结论是平台没有读取我放置的配置。

      在第一种情况下,这是因为您使用的配置文件适用于 Amazon Linux 1 (AL1)。但是,您的环境是在 64 位 Amazon Linux 2 (AL2) 上运行的 PHP 7.4。

      在您的第二次尝试中,您应该在.platform/nginx/conf.d/ 中使用the config files。但是,您使用的是 *.config 扩展名。这个错误的扩展和它should be:

      cleanurl.conf
      

      您可能还有其他问题,但错误的扩展名可以解释文件被忽略的原因。

      【讨论】:

      • 您好,感谢您的回答,我已经按照您的建议进行了更改,但是继续忽略配置文件,我承认我对ngnix一无所知,但是在我所做的调查中,我知道文件“cleanurl.conf”中的这个简单配置应该可以工作,我的应用程序根目录中有“views”文件夹。也许你可以给我一些简单的设置来检查文件是否被忽略?
      猜你喜欢
      • 2020-08-27
      • 2013-04-11
      • 2015-11-27
      • 2013-11-19
      • 2017-04-01
      • 2021-08-22
      • 2021-11-24
      • 2021-01-22
      • 2015-03-27
      相关资源
      最近更新 更多