tl;dr: Web apps should work behind reverse-proxy servers out of the box. Use relative URLs.
As a digression from my usual policy-wonk fare, I’d like to take a short moment to coin a term: “reverse-proxy friendly”. This is a property of web-applications such that they can be used behind a reverse-proxy server without the need for the proxy server to re-write URLs in HTML. (And without the for the operator of said application to modify anything about the app.) The main thing that a web app needs to do (in order to be reverse-proxy friendly) is to use relative URLs, but sometimes there are other changes as well, such as changes to Javascript that computes AJAX or WebSocket endpoints.
Here’s my issue: Continue reading