2012-12-12 24 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主機。

可能有更好的方法來做到這一點,但它適用於我們。