2012-12-12 22 views
3

我有一个基于Python的Flask工作webapp。 (配置为在http://主机:端口上工作)
Python Flask webapp简单的代理配置来启用Apache的SSL/HTTPS

我需要使它与https协同工作。我获得了一个Apache代理 - 它以这种方式重定向所有请求:

(Apache)https:// host/myApp - > http:// host:port(我的基于Flask的应用程序)。其中主机:端口是我的应用工作正常的标准配置。

我能够到达服务和索引页面。但是,访问所有静态内容时存在问题,这是请求的方法(例如,ico,图像等)。

你能指点我的任何资源/信息吗?提前致谢。

+1

你看到了什么样的问题? 404错误?如果你手动输入一个静态资源的正确url并添加https,删除s,会发生什么?哪个应用程序*实际上*服务于静态文件,Apache或您的Web应用程序(它可以是两者,但理想情况是Apache)。 – MalphasWats

回答

3

我们添加一行在httpd.conf中,处理/静态/而不是进行代理它gunicorn:

<VirtualHost oursite.com> 

    # Tells apache where /static/ should go 
    Alias /static/ /full/path/to/flask/app/static/ 

    # Proxy everything to gunicorn EXCEPT /static and favicon.ico 
    ProxyPass /favicon.ico ! 
    ProxyPass /static ! 
    ProxyPass/http://gunicorn.oursite.com:4242/ 
    ProxyPassReverse/http://gunicorn.oursite.com:4242/ 

</VirtualHost> 

这工作,因为我们已经gunicorn和Apache在同一个机器上运行,可能会或可能不会为你工作。作为网站部署的一部分,您可能必须将静态文件复制到apache主机。

可能有更好的方法来做到这一点,但它适用于我们。