Add sub_filter module to nginx

Summary

Sub_filter module should be added to the bundled nginx server in order to be able to rewrite body links of proxied requests.

Proposal

Problem

I am trying to serve different web apps via reverse proxy. For now we can inject custom nginx config as seen here.

The apps should be organized so:

public url Content
mydomain.com/ Home/Menu to navigate to the apps
mydomain.com/app1 app1
mydomain.com/app2 app2

Now with the correct nginx config I can navigate to the apps, but they will have "bad links" since they will point to mydomain.com/*, which will make nginx to return always mydomain.com/,i.e. the Home/Menu to the apps.

So if in app1 is a relative link like /users it will point to mydomain.com/users/ and not to mydomain.com/app1/users/.

Possible solution

Using nginx's sub_filter module we should be able to rewrite the body links.

This way the links of the apps can be rewritten via:

sub_filter "http://mydomain.com" "http://mydomain.com/appX"
sub_filter_once off;

In the example above the app1 will have a correct link to /users, since it will be rewritten from mydomain.com/users to mydomain.com/app1/users

References

Edited by Rafael Gomez