John Arnold created AIRFLOW-2190: ------------------------------------ Summary: base_url with a subpath generates TypeError Key: AIRFLOW-2190 URL: https://issues.apache.org/jira/browse/AIRFLOW-2190 Project: Apache Airflow Issue Type: Bug Components: webserver Affects Versions: 1.9.0 Reporter: John Arnold
I'm running into what looks like a bug in airflow webserver. Running against master: Mar 7 18:20:13 netdocker1-eastus2 daemon INFO ca5ce9db3af6[92630]: [2018-03-07 18:20:13 +0000] [102] [ERROR] Error handling request / Mar 7 18:20:13 netdocker1-eastus2 daemon INFO ca5ce9db3af6[92630]: Traceback (most recent call last): Mar 7 18:20:13 netdocker1-eastus2 daemon INFO ca5ce9db3af6[92630]: File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 135, in handle Mar 7 18:20:13 netdocker1-eastus2 daemon INFO ca5ce9db3af6[92630]: self.handle_request(listener, req, client, addr) Mar 7 18:20:13 netdocker1-eastus2 daemon INFO ca5ce9db3af6[92630]: File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/sync.py", line 176, in handle_request Mar 7 18:20:13 netdocker1-eastus2 daemon INFO ca5ce9db3af6[92630]: respiter = self.wsgi(environ, resp.start_response) Mar 7 18:20:13 netdocker1-eastus2 daemon INFO ca5ce9db3af6[92630]: File "/usr/local/lib/python3.6/site-packages/werkzeug/wsgi.py", line 826, in call Mar 7 18:20:13 netdocker1-eastus2 daemon INFO ca5ce9db3af6[92630]: return app(environ, start_response) Mar 7 18:20:13 netdocker1-eastus2 daemon INFO ca5ce9db3af6[92630]: File "/usr/local/lib/python3.6/site-packages/airflow/www/app.py", line 166, in root_app Mar 7 18:20:13 netdocker1-eastus2 daemon INFO ca5ce9db3af6[92630]: resp(b'404 Not Found', [(b'Content-Type', b'text/plain')]) Mar 7 18:20:14 netdocker1-eastus2 daemon INFO ca5ce9db3af6[92630]: File "/usr/local/lib/python3.6/site-packages/gunicorn/http/wsgi.py", line 261, in start_response Mar 7 18:20:14 netdocker1-eastus2 daemon INFO ca5ce9db3af6[92630]: self.process_headers(headers) Mar 7 18:20:14 netdocker1-eastus2 daemon INFO ca5ce9db3af6[92630]: File "/usr/local/lib/python3.6/site-packages/gunicorn/http/wsgi.py", line 268, in process_headers Mar 7 18:20:14 netdocker1-eastus2 daemon INFO ca5ce9db3af6[92630]: raise TypeError('%r is not a string' % name) Mar 7 18:20:14 netdocker1-eastus2 daemon INFO ca5ce9db3af6[92630]: TypeError: b'Content-Type' is not a string I just started using the base_url to put the webserver behind nginx proxy under a sub-path, elg [http://domain.com/airflow] I've tried following the docs for nginx proxy, i.e. [webserver] base_url = [http://localhost/airflow|http://airflow-web/airflow] I've also tried setting the base_url to the fully-qualified endpoint: base_url = [https://example.com/airflow|https://domain.com/airflow] Neither work, both give the TypeError exception. If I remove the sub-path: base_url = [https://example.com|https://domain.com/] then the app starts and runs ok and i can access it on the host but not through the proxy. -- This message was sent by Atlassian JIRA (v7.6.3#76005)