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)

Reply via email to