【问题标题】:403 forbidden for AWS Beanstalk Flask static files without SSL没有 SSL 的 AWS Beanstalk Flask 静态文件禁止 403
【发布时间】:2016-04-01 06:12:46
【问题描述】:

我的本​​地机器是一个带有 Python 2.7 virtualenv 的虚拟 CeontOS-7,其中包含一个 Flask 应用程序目录,结构如下:

/var
  /www
    /myAppenv
      /myApp
        /.ebextensions
           myApp-env.config
        /.elasticbeanstalk
        application.py
        requirements.txt
        /flaskApp
          /core
            views.py
            models.py
            forms.py
          /templates
          /static

然后我使用 EB CLI 将其从 /myApp 部署到名为 myApp 的 Beanstalk 应用程序,并使用名为 myApp-env 的环境。

我认为静态文件路径设置在 /.ebextensions/myApp-env.config 中:

option_settings:
   "aws:elasticbeanstalk:container:python:staticfiles":
     "/static/": "flaskApp/static/"

我可以在 AWS Web 控制台-> 环境-> 配置-> 软件配置中看到

StaticFiles: /static/=flaskApp/static/ 

所以路径设置似乎不是问题的原因。

所以当我打开我的应用程序的网页时,我看到页面缺少 css 和 js,因为静态目录中的所有内容都会收到 403 禁止响应:

GET http://myApp-dev.elasticbeanstalk.com/ [HTTP/1.1 200 OK 174ms]
GET http://myApp-dev.elasticbeanstalk.com/static/bootstrap-3.3.5-dist/js/bootstrap.min.js  [HTTP/1.1 403 Forbidden 55ms]
...

猜测这是关于权限的问题,因为在我的本地目录中,文件归我的 linux 帐户所有(出于 samba 原因),然后我尝试 chown root 和 chgrp root(静态目录和文件权限为 755),但它没有不要改变任何东西。实际上,我认为与防火墙/selinux 没有任何关系,因为主页实际上正在加载。

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: python amazon-web-services flask amazon-elastic-beanstalk http-status-code-403


    【解决方案1】:

    我想我找到了问题所在。我通过 EB SSH 检查只是为了了解发生了什么,我注意到我登录 AWS 机器的“ec2-user”可以访问(运行 cd 命令)直到目录

    /opt/python/current/app
    

    但不允许 ec2-user 访问目录

    /opt/python/current/app/flaskApp
    

    因为权限。

    虽然 flaskApp 中包含的静态目录和文件的权限设置为 755,但我注意到 flaskApp 目录(包含静态目录)为 744(我认为这很好)。所以我将 flaskApp 目录权限更改为 755 并且它起作用了:现在静态文件已加载!

    顺便说一句,我怀疑这个权限集是否适合生产。另一种方法是构建目录,使 static 不是 flaskApp 目录的子目录,从而允许将静态目录设置为 755,同时将 flaskApp 目录设置为更保守的权限。

    【讨论】:

      【解决方案2】:

      如果不是所有用户都可以查看文件,那么作为 root 的所有者/组可能无关紧要。通过在所有静态文件上运行 chmod 664 确保所有人都可以访问它们。

      【讨论】:

      • 对不起,我没有在我的问题中说静态目录和文件权限是 755。我现在将编辑问题以添加它。
      猜你喜欢
      • 1970-01-01
      • 2022-01-27
      • 2021-12-16
      • 2015-04-25
      • 2016-06-05
      • 2018-03-11
      • 2014-10-17
      • 2013-05-24
      • 1970-01-01
      相关资源
      最近更新 更多