Configuring a reverse proxy

Abyss Web Server can act as a reverse proxy to provide content transparently from another Web server behind it (commonly called a back-end server.)

The proxied server can be another Web server or an application server with a restricted or even a trivial HTTP support that has to be shielded from external clients. Reverse proxying is also the recommended way to take advantage of JSP (Java Servlet Pages), Tomcat/Jetty, node.js Web applications, or ASP.NET Core applications deployed on Kesterel.

How does reverse-proxying work?

A reverse proxy rule in Abyss Web Server establishes a mapping between a virtual path in a frontal host and another virtual path in back-end (the proxied server.)

For example, if there is a rule associating the virtual path /app on mysite.com to http://192.168.1.103:8080/wb, a request to http://mysite/app/xyz/test.py received by Abyss Web Server will generate a request to http://192.168.1.103:8080/wb/xyz/test.py. The response to that request as received by Abyss Web Server will be forwarded to the client.

client ----request----> Abyss Web Server ----request----> Back-end server
client <---response---- Abyss Web Server <---response---- Back-end server

Setup example

The typical use case of the reverse proxy feature is probably when a Java application server is involved.

Below are the instructions to install Tomcat (a Java Application Server) and how to use it as a back-end with Abyss Web Server:

  • Download and install Tomcat. Ensure that the HTTP connector is installed.
  • Run Tomcat.
  • Tomcat includes a simple HTTP server listening on port 8080 and ships by default with a group of examples in /examples.
  • Verify that the simple Web server of Tomcat is accessible by visiting the URL http://127.0.0.1:8080/examples or more generally http://tomcatip:8080/examples where tomcatip is to be replaced with the IP of the computer running the Tomcat application server.

Now add a new reverse proxy rule in Abyss Web Server using the following parameters:

  • Local virtual path: /test
  • Remote server address: 127.0.0.1 (or the IP of the server where Tomcat was installed)
  • Remote port: 8080
  • Remote virtual path: /examples

See also

Keep in touch with us

Sign up for our low volume newsletter to get product announcements, articles and power tips.

or