Elastic Beanstalk - 拒绝访问 directory/subdirectory (Nginx)

Elastic Beanstalk - Denying access to directory/subdirectory (Nginx)

我的环境:
平台:PHP 8.0 运行 on 64bit Amazon Linux 2/3.3.12
代理服务器:Nginx

我需要的是:
拒绝访问 /img 目录及其文件。

我试过的:

1.Creating 这个文件夹在我源代码的根目录:.ebextensions

2.Adding 将包含以下内容的 newconf.config 文件放入上面的文件夹中:

files:
    "/etc/nginx/conf.d/my_conf.conf":
        mode: "000644"
        owner: root
        group: root
        content: |
           location /img {
               return 403;
           }

3.Upload & 在 Elastic Beanstalk 中部署。

结果:
没有错误消息,但我仍然可以访问 /img 目录,因为 my_conf.conf 不是在 /etc/nginx/conf.d/.

中创建的

备注:
我正在打开其他有助于阻止访问 /img 目录的解决方案。

解法:
所以 Marcin 在这条道路上的部分正确,但它对帮助我找到解决方案至关重要。

如果将它放在 .platform/nginx/conf.d/ 中,您可能会在部署期间遇到此错误:"location" directive is not allowed here

所以这里是需要做的事情:

1.Create 源代码中的 .platform/nginx/conf.d/elasticbeanstalk/ 目录。

2.Create 一个 conf 文件并将您的配置放入其中。在我的例子中,我使用 my_conf.conf :

location /img {
    return 404;
}

3.Upload & 部署。

就是这样。我得到了解决方案 here。请注意 link 是日文的,我不得不使用翻译器。

您正在使用 64bit Amazon Linux 2/3.3.12。因此,您的 nginx 设置应位于 .platform/nginx/conf.d/(而不是 .ebextensions),如 docs.

中所述

您可以尝试 .platform/nginx/conf.d/my_conf.conf 内容为:

location /img {
     return 403;
}