diff --git a/IPython/frontend/html/notebook/notebookapp.py b/IPython/frontend/html/notebook/notebookapp.py index c7fac6b..c14acb6 100644 --- a/IPython/frontend/html/notebook/notebookapp.py +++ b/IPython/frontend/html/notebook/notebookapp.py @@ -460,6 +460,11 @@ class NotebookApp(BaseIPythonApplication): config=True, help='The notebook manager class to use.') + trust_xheaders = Bool(False, config=True, + help=("Whether to trust or not X-Scheme/X-Forwarded-Proto and X-Real-Ip/X-Forwarded-For headers" + "sent by the upstream reverse proxy. Neccesary if the proxy handles SSL") + ) + def parse_command_line(self, argv=None): super(NotebookApp, self).parse_command_line(argv) if argv is None: @@ -512,7 +517,8 @@ class NotebookApp(BaseIPythonApplication): else: ssl_options = None self.web_app.password = self.password - self.http_server = httpserver.HTTPServer(self.web_app, ssl_options=ssl_options) + self.http_server = httpserver.HTTPServer(self.web_app, ssl_options=ssl_options, + xheaders=self.trust_xheaders) if not self.ip: warning = "WARNING: The notebook server is listening on all IP addresses" if ssl_options is None: