[ 
https://issues.apache.org/jira/browse/AIRFLOW-2190?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16390180#comment-16390180
 ] 

John Arnold commented on AIRFLOW-2190:
--------------------------------------

This code is bugged:
[https://github.com/apache/incubator-airflow/blob/master/airflow/www/app.py#L166]

    resp(b'404 Not Found', [(b'Content-Type', b'text/plain')])

If I change it to:

    resp(b'404 Not Found', [('Content-Type', 'text/plain')])



The TypeError goes away.

But I still can't get the subpath to work behind the proxy.

 

> 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)

Reply via email to