是否有人破解了如何在dev_appserver.py上运行HTTPS?我需要它用于Facebook画布应用测试。我已经对文档进行了搜索,没有任何迹象表明有一种方法可以做到这一点(在app.yaml中坚持'安全'并不是本地的)。
我认为可能有一种代理方式,但是有没有人有这方面的经验?
答案 0 :(得分:7)
dev_appserver不支持HTTPS。唯一可行的方法是在应用程序前设置反向代理 - 例如使用nginx或Apache - 并让它为您的应用程序代理SSL流量。
答案 1 :(得分:1)
我知道这已经晚了,以防其他人发现此问题:
对于自定义反向HTTPS代理,ngrok很容易设置..
唯一的缺点是我的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
类来实现其他实用功能。
答案 2 :(得分:0)
我把它放在我的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