This tutorial will help you to setup Apache web server as Reverse Proxy for the Tomcat hosted applications. Tomcat is running on port 8080 and I have configured two sample applications running with following urls. Apache HTTPD 2.4.6 (from Red Hat yum repository) Tomcat 8.5.23 (from Apache) Install Docker on Red Hat Enterprise Linux 7. Join Red Hat Enterprise Linux developer subscription; Then, refer to the GETTING STARTED WITH CONTAINERS to install Docker and corresponding configurations. Dockerfile -Apache HTTPD. Mkdir -p /root/httpd-project; cd /root. In my last post (Virtual Host in Tomcat) we discussed about how setup the virtual host in Tomcat. Its cost effective technique because only one public IP is.
Apache Tomcat and the World Wide Web
Usually when running an application server, such as Apache Tomcat, you bind a connector directly on port 80. This way users visiting your web application will be able to navigate through your server just by calling your domain instead of calling your domain and special port (http://yourdomain.com:8080). If there is no option to bind a Tomcat connector on port 80 (some systems ban this functionality for security purposes), there are other ways to achieve this behavior such as setting a redirect on port 80 to port 8080 (Tomcat's default, or any other) using IPTables or any other port redirection tool. Both options are really simple procedures, but are a great issue if you need to run a simple HTTP server on your machine too.
Apache HTTP and mod_proxy
To solve this problem we can run Apache HTTPD as a front-end proxy for Apache Tomcat and redirect traffic to the application server based on a set of rules. In this tutorial we will use mod_proxy, although there are many other options available.
This tutorial assumes that Apache Tomcat is already installed and configured with the default connector settings (port 8080) and Apache HTTP is installed too with the default listener settings (port 80).
For this tutorial we are going to assume that there are 2 different domains (tomcatserver.com and httpserver.com) pointing to the same IP address. The user expects to reach the application server when navigating to one domain and the web server when navigating to the other.
First step is make sure that the file httpd.conf has mod_proxy enabled (which is by default), so in case it isn't, uncomment the following line.
LoadModule proxy_module modules/mod_proxy.so
Taking into account that there are 2 domains, we need to use the NameVirtualHost directive and define two virtual hosts based on the different domains.
NameVirtualHost *:80
Next we define the virtual host that will redirect traffic to tomcat. In case tomcat has some virtual hosts defined too, we'll add a ServerAlias for each domain that needs to reach tomcat
Movie Info When a tornado hits a nuclear power plant and damages the cooling system, manager Corrine Maguire (Sharon Lawrence) and her staff try to avert a total meltdown. Meanwhile, her son. Atomic twister. 'Atomic Twister,' a countdown to disaster, traces an extraordinary day in the lives of small-town citizens who unexpectedly find themselves facing the possibility of mass destruction.
2 4 6 8 | ServerAdmin root@localhost ServerName httpserver.com ServerAlias httpserver1.com </VirtualHost> |
Proxy Rules
In this example we've assumed there are two different domains (or more) and that each domain will point to a different type of server. mod_proxy allows us to define more advanced rules, to proxy content based on other rules such as the context path.