Hi Maxime, I'm not sure I understand your concern. The prefix is applied universally across all requests in the webapp, and it is done in the webapp, not in a proxy or a middleware component, The changes are literally this:
https://gist.github.com/llevar/2e419127f24a3c57f173382b3e8fd075 plus setting the config file entry. What do you feel is brittle about this? Many applications provide a customizable context path for similar reasons and with a similar mechanism. On Fri, Sep 15, 2017 at 6:34 PM Maxime Beauchemin < [email protected]> wrote: > The problem is the app isn't written using proper URL constructs (using > Flask.url_for) or relative URLs. From memory there's a lot of > root/hard-coded URLs. Then you rely on the proxy/middleware to alter link > in HTML/JS which sounds super fragile. > > Max > > On Fri, Sep 15, 2017 at 4:07 AM, Driesprong, Fokko <[email protected]> > wrote: > > > Hi Sergei, > > > > You can also remove gunicorn completly and let Nginx talk to the Flask > app > > directly using wsgi: > > https://www.digitalocean.com/community/tutorials/how-to- > > serve-flask-applications-with-uwsgi-and-nginx-on-ubuntu-14-04 > > > > I'm not super familiar with the routing in Nginx. A subdomain like > > airflow.domain.tld will work like Maxime suggested, but I'm not really > sure > > if extending the path will work, e.g. domain.tld/airflow. > > > > Cheers, Fokko > > > > > > 2017-09-15 12:27 GMT+02:00 Sergei Iakhnin <[email protected]>: > > > > > I couldn't get the subdomain idea working for the use-case where a > single > > > nginx proxies to multiple apps. For instance you want to have one front > > > page with links to Flower and Airflow Web UI. The quoble post was > > > interesting (thank you Sumit), but seemed a bit cumbersome. After some > > > searching I came upon the following gist, which uses the concept of > WSGI > > > middleware to uniformly add a URL prefix across the entire Flask app: > > > > > > https://gist.github.com/Larivact/1ee3bad0e53b2e2c4e40 > > > > > > Implementing this in Airflow is extremely straightforward and does the > > job > > > nicely, all in a single place. > > > > > > Is there interest in having me PR this? > > > > > > Best, > > > > > > Sergei. > > > > > > > > > > > > > > > > > > On Thu, Sep 14, 2017 at 8:54 AM Sumit Maheshwari < > [email protected] > > > > > > wrote: > > > > > > > Sergei, > > > > > > > > Check the first bullet/point on this blog > > > > <https://www.qubole.com/blog/creating-apache-airflow-as-a-service/>, > > it > > > > might help you. > > > > > > > > Thanks, > > > > Sumit Maheshwari > > > > cell. 9632202950 > > > > > > > > > > > > On Thu, Sep 14, 2017 at 2:34 AM, Maxime Beauchemin < > > > > [email protected]> wrote: > > > > > > > > > It works well if you use a subdomain instead of a folder. > > > > > > > > > > Max > > > > > > > > > > On Wed, Sep 13, 2017 at 1:05 PM, Sergei Iakhnin <[email protected]> > > > > wrote: > > > > > > > > > > > I'm wondering if the webserver can be run behind a reverse proxy > > like > > > > > > nginx. I've tried setting the base URL to have an additional > > context > > > > path > > > > > > of /airflow and then have nginx target that in the proxy_pass > > > > directive, > > > > > > but it hasn't worked. I would appreciate any other ideas. > > > > > > > > > > > > Without the context path the proxying of airflow clashes with > other > > > > sites > > > > > > served by the proxy. > > > > > > > > > > > > Best, > > > > > > > > > > > > Sergei. > > > > > > -- > > > > > > > > > > > > Sergei > > > > > > > > > > > > > > > > > > -- > > > > > > Sergei > > > > > > -- Sergei
