有没有人破解了如何让HTTPS在dev_appserver.py上工作?我需要它进行Facebook画布应用测试。我搜索了文档,但没有任何内容表明有办法做到这一点(在app.yaml中“坚持”安全性并不是什么地方)。通过HTTPS GAE dev_appserver.py
我认为可能有代表它的方法,但是有没有人有过这方面的经验?
有没有人破解了如何让HTTPS在dev_appserver.py上工作?我需要它进行Facebook画布应用测试。我搜索了文档,但没有任何内容表明有办法做到这一点(在app.yaml中“坚持”安全性并不是什么地方)。通过HTTPS GAE dev_appserver.py
我认为可能有代表它的方法,但是有没有人有过这方面的经验?
dev_appserver不支持HTTPS。这样做的唯一可行的方法是在您的应用程序前面设置反向代理 - 例如使用nginx或Apache - 并将代理SSL流量代理到您的应用程序。
我知道这是后期,万一别人发现这个问题:
ngrok是安静容易安装自定义反向HTTPS代理..
唯一的缺点是,我的webapp2的应用仍然认为它是通过HTTP提供服务的,因此使用redirect()
不适用,因为它使用request.url
将相对URL解析为绝对URL。
我的解决方法是覆盖RequestHandler.redirect
如下:
class BaseRequestHandler(RequestHandler):
def redirect(self, uri, permanent = False, abort = False, code = None, body = None):
if uri.startswith(('.', '/')):
base_url = self.request.url
if base_url.startswith('http://'):
base_url = 'https://' + base_url[7:]
uri = str(urlparse.urljoin(base_url, uri))
super(RequestHandler, self).redirect(uri, permanent, abort, code, body)
我需要一个BaseRequestHandler
类反正,用于实现其他实用功能。
我把这个在我的Appache httpd.conf中代理的连接:
<Location /myproject/>
ProxyPass http://localhost:8080/
</Location>
现在要https://localhost/myproject/
在我的浏览器工作。
注意:需要在您的Apache服务器上启用SSL。在我的OS X机器上,我取消注释掉/etc/apache2/httpd.conf中的Include /private/etc/apache2/extra/httpd-ssl.conf
行,并运行sudo apachectl restart
你是怎么做到的? – 2012-01-16 09:38:05
@AhmedNuaman这将是一个不同的问题 - 一个用于serverfault.com,而不是Stack Overflow。 – 2012-01-16 10:19:19