diff --git a/etc/nginx/sites-available/lookyloo b/etc/nginx/sites-available/lookyloo index c0dfe41..46a754a 100644 --- a/etc/nginx/sites-available/lookyloo +++ b/etc/nginx/sites-available/lookyloo @@ -7,7 +7,7 @@ server { proxy_set_header Host $http_host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Scheme $scheme; + proxy_set_header X_FORWARDED_PROTO $scheme; proxy_connect_timeout 300; proxy_read_timeout 300; proxy_pass http://localhost:5100/; diff --git a/website/web/__init__.py b/website/web/__init__.py index f3c4d3d..1157da8 100644 --- a/website/web/__init__.py +++ b/website/web/__init__.py @@ -16,12 +16,14 @@ from flask_httpauth import HTTPDigestAuth # type: ignore from lookyloo.helpers import get_homedir, update_user_agents, get_user_agents from lookyloo.lookyloo import Lookyloo from lookyloo.exceptions import NoValidHarFile +from .proxied import ReverseProxied from typing import Tuple import logging app: Flask = Flask(__name__) +app.wsgi_app = ReverseProxied(app.wsgi_app) secret_file_path: Path = get_homedir() / 'secret_key' diff --git a/website/web/proxied.py b/website/web/proxied.py new file mode 100644 index 0000000..439624f --- /dev/null +++ b/website/web/proxied.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + + +class ReverseProxied(): + def __init__(self, app): + self.app = app + + def __call__(self, environ, start_response): + scheme = environ.get('HTTP_X_FORWARDED_PROTO') + if not scheme: + scheme = environ.get('HTTP_X_SCHEME') + + if scheme: + environ['wsgi.url_scheme'] = scheme + return self.app(environ, start_response)