【发布时间】:2014-05-06 14:35:01
【问题描述】:
我正在尝试将 Flask 设置为在 SSL 上运行,同时将所有 HTTP 流量重定向到 HTTPS。
我目前正在使用 Apache 作为 Web 服务器,它正在正确地为端口 80 HTTP 上的流量提供服务。但是,当我将端口 80 VirtualHost 下的配置移动到端口 443 并为端口 80 设置重定向时,重定向有效,但 Apache 一直显示 Apache 测试页面,并且不为 Flask 应用程序提供服务。错误日志没有显示任何有用的信息。我看到的唯一错误是Directory index forbidden by Options directive: /var/www/html。我什至不使用 /var/www/html,而且我知道这主要是对旧浏览器的警告。
这是我的 Apache 虚拟主机设置:
LoadModule wsgi_module modules/mod_wsgi.so
WSGISocketPrefix run/wsgi
NameVirtualHost *:80
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine on
SSLEngine on
SSLCertificateFile <<FILE PATH>>
SSLCertificateKeyFile <<FILE PATH>>
SSLCertificateChainFile <<FILE PATH>>
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
WSGIPassAuthorization On
WSGIDaemonProcess api processes=4 threads=1
WSGIProcessGroup api
WSGIScriptAlias / /usr/local/app/api/current/conf/application.wsgi
AddType text/html .py
<Directory /usr/local/app/api/current/>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
它有什么问题?当我将所有 WSGI 和 Directory 行复制到端口 80 并复制出 443 时,它可以正常工作。
【问题讨论】:
-
与烧瓶没有真正的关系...也许删除烧瓶关键字?
标签: python apache ssl flask virtualhost