[llvm-dev] LNT server behind a proxy and mounted in a /subdir

Roger Ferrer Ibáñez via llvm-dev llvm-dev at lists.llvm.org
Fri Jul 27 06:47:33 PDT 2018


Hi all,

I want to install an LNT server. For reasons that don't matter much I can't
have something like

   https://lnt.dept.acme.org

but instead I can have

  https://dept.acme.org/lnt

I'm definitely not an expert in web applications nor WSGI but I managed to
configure the front-end server (the one that serves dept.acme.org) to proxy
/lnt to the server that lnt runserver creates.

The problem I found is that the server started by "lnt runserver" is not
aware that as a web application it is running under "/lnt", not under "/".
This means the URLs rendered by the application are wrong.

I didn't find any obvious way to fix this so I amended lnt/lntool/main.py
to accept a "--subdir" flag. I then wrapped the app just created using a
"werkzeug.wsgi.DispatcherMiddleware" with the mount point specified in
"--subdir"

Then I found another issue is that the https connection terminates at the
front-end server and "lnt runserver" is again not aware of https. Sometimes
the web application renders full URLs with http. Again I hacked
lnt/lntool/main.py to accept a "--scheme" flag so I can wrap again the app,
this time using a custom "middleware" that fixes the scheme.

With these two changes the web application seems to work fine :)

Has anyone run a similar setup? I feel my solution is a bit hacky, perhaps
there is already a way to do this? Or else, it might be better to encode
these two options in lnt.cfg?

Not sure if anyone would be interested in supporting this (perhaps unusual)
scenario.

Kind regards,

-- 
Roger Ferrer Ibáñez
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180727/f32f4703/attachment.html>


More information about the llvm-dev mailing list