2

我有一个使用 BottlePy 运行的 python 应用程序。

此应用程序由 Nginx 路由:

listen 443;
ssl on;
...

location / {
    include uwsgi_params;
    uwsgi_param UWSGI_SCHEME https;
    uwsgi_pass unix:///var/run/uwsgi/uwsgi.sock;
}

因为我用的是BottlePy微框架,所以不能调用request.is_secure()(No such method)。

但是有没有办法UWSGI_SCHEME从代码中读取值?

我的目标是从代码中确定该请求使用了 HTTPS。

4

2 回答 2

2

request.environ确实是要走的路。

http://bottlepy.org/docs/dev/api.html#bottle.BaseRequest.environ

感谢迈克为我指出了正确的方向。

print request.environ['wsgi.url_scheme']

将打印 URL 的方案:http/https...

于 2012-08-06T13:46:18.747 回答
1

我不确定is_secure请求方法来自哪里,但您可以使用 WSGI 环境(request.environ)编写自己的方法

def is_secure(request):
    if request.environ['SERVER_PORT'] == '443':
        return True
    return False
于 2012-08-06T13:38:24.333 回答