From e4e413ede34a2ae306ddd130324435d0e735f064 Mon Sep 17 00:00:00 2001 From: Yves Fischer Date: Sat, 9 May 2015 00:07:35 +0200 Subject: influxdb-guard --- guard/proxyfix.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 guard/proxyfix.py (limited to 'guard/proxyfix.py') diff --git a/guard/proxyfix.py b/guard/proxyfix.py new file mode 100644 index 0000000..bd86203 --- /dev/null +++ b/guard/proxyfix.py @@ -0,0 +1,31 @@ +from werkzeug.contrib.fixers import ProxyFix + +def _reverse_proxified(app): + """ + Configure apache as: + RequestHeader set X-Script-Name /videos + """ + + def wsgi_call(environ, start_response): + script_name = environ.get('HTTP_X_SCRIPT_NAME', '') + if script_name: + environ['SCRIPT_NAME'] = script_name + path_info = environ['PATH_INFO'] + if path_info.startswith(script_name): + environ['PATH_INFO'] = path_info[len(script_name):] + + scheme = environ.get('HTTP_X_SCHEME', '') + if scheme: + environ['wsgi.url_scheme'] = scheme + return app(environ, start_response) + + return wsgi_call + +""" +'ProxyFix' applied for reading X-Forwarded-Proto, X-Forwarded-For, X-Forwarded-Host + +'_reverse_proxified' applied for 'X-Script-Name'. +That's required when external request path is different from application server path. +""" +def fix(app): + return _reverse_proxified(ProxyFix(app)) -- cgit v1.2.1