我刚刚继承了一个在Apache 2.4,mod_wsgi 3.4和Python 2.7下运行的Python应用程序。同一个应用程序同时处理HTTP和HTTPS请求。如何确定我的mod_wsgi应用程序是否在HTTPS上运行?
在现有的代码,它试图确定reqeust是HTTPS通过检查环境:
if context.environ.get('HTTPS') not in ['on', '1']:
此检查失败,即使连接实际上是HTTPS。在查看显示环境变量的扩展回溯时,我看到HTTPS
实际上不在Apache传递的环境中。
所以我的问题是:
- 这是一个Apache的配置问题?
- 此检查是否完全错误,应该重写以检查其他内容?如果是这样,什么?
- 或者我应该放弃并用nginx替换Apache,就像我真正想做的一样?
你肯定Python是[编译支持SSL(http://morlockhq.blogspot.com.au/2008/05/python-tip-checking-to-see-if-your.html)? – sjdaws 2013-02-24 07:37:25
@sjdaws'hasattr(socket,“ssl”)'为我返回'True'。 – 2013-02-24 07:38:25
不Apache代理传球总是通过'http:// backend'而不是代理通过SSL连接到'的https:// backend' – sjdaws 2013-02-24 07:38:57