[ https://issues.apache.org/jira/browse/AIRFLOW-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16390225#comment-16390225 ]
John Arnold edited comment on AIRFLOW-2190 at 3/7/18 9:04 PM: -------------------------------------------------------------- I got the subpath working... the docs are wrong. In the docs, it says to redirect to the root: proxy_pass [http://localhost:8080|http://localhost:8080/]; However, if you have a base_url with a sub-path, the flask app actually seems to prefix the subpath into it's URIs, so you have to proxy_pass the subpath too: proxy_pass [http://localhost:8080/airflow/|http://airflow-web:8080/airflow/]; was (Author: johnarnold): I got the subpath working... the docs are wrong. In the docs, it says to redirect to the root: proxy_pass http://localhost:8080; However, if you have a base_url with a sub-path, the flask app actually seems to prefix the subpath into it's URIs, so you have to proxy_pass the subpath too: proxy_pass http://airflow-web:8080/airflow/; > 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 > Priority: Major > > 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)