4

我有一个基于 Python 的工作 webapp,Flask。(配置为在 http://host:port 上工作)

我需要让它与 https 一起工作。我得到了一个 Apache 代理——它以这种方式重定向所有请求:

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

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

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

4

1 回答 1

4

我们在 httpd.conf 中添加一行来处理 /static/ 而不是将其代理给 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 主机。

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

于 2012-12-12T23:16:26.917 回答