Apache Reverse Proxy HTTPS: Configuration and Benefits

We are going to learn about Apache Reverse Proxy HTTPS configuration and benefits. We’ll learn how Reverse Proxy works, why it is different from the simple proxy server, and how to implement reverse proxy. (Reverse Proxy Server Configuration)

What is Reverse Proxy Server?

The Reverse Proxy server is a server that resides between the web server and the client (that is normally your web browser).

It takes requests from the client and distributes them to multiple web servers. After that, it takes the response from the web server and sends it to the respective client, while the client remains unaware that it is connected to a single server or multiple web servers.

Reverse proxies are implemented to increase the web server’s security, performance, and reliability.

It acts as a middleman. That allows you to configure your server and clients easily.

What is the difference between a Reverse Proxy and a Load Balancer?

A reverse proxy sits in front of another service and directs requests to that service. A load balancer distributes incoming traffic across a set of servers.

A reverse proxy is a load balancer without a name. A load balancer is software that distributes workloads across multiple servers.

The proxy will handle the SSL negotiation and encryption. The user will then connect to your web server over HTTP.

Is a Reverse Proxy Required?

A reverse proxy is not required for every web server. However, it is useful when you have many clients connecting to your web server and want to distribute the load across several IP addresses.

Why Use a Reverse Proxy?

The primary reason for using a reverse proxy is to reduce the load on your web server. If you have a lot of users connecting to your site, and they all need to use SSL, you may have difficulty keeping up with the volume of traffic.

How do I use a Reverse Proxy with Apache2?

Apache has built-in support for a reverse proxy. To configure this, you need to add the following two lines to your httpd.conf file:

ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/

That will make Apache act as a reverse proxy for your localhost:8080 application. If you access your web application at, it will be served by Apache. When you access http://localhost:8080, it will be proxied to your application.

If you have multiple web applications running on different ports, you can use the following syntax to specify which one to use:

ProxyPass /myapp http://localhost:8081/
ProxyPassReverse /myapp http://localhost:8081/

How to configure Apache Reverse Proxy HTTPS?

To create a reverse proxy, you will need to install the following components/modules:

  1. mod_proxy: Main proxy module. (mode_proxy official documentation)
  2. mod_proxy_balancer: For load-balancing and clustering.
  3. mod_proxy_http: Implements the features

How to Install the Reverse Proxy Components?

To install the components, you will need to open a terminal and type the following:

# yum install httpd
# yum install httpd-devel

# yum install httpd-devel-2.4.18-16.el7.x86_64

Adding the Reverse Proxy

Once you have installed all the components, you will need to create a virtual host that will be used to forward HTTPS traffic. You will need to create a file named “myhost” in the directory “/etc/httpd/conf.d

Configuring the Virtual Host

Now you will need to add the following line to the virtual host:

ProxyPass /

Setting Up the Reverse Proxy

To test your configuration, you will need to restart your apache server. You will need to type the following in a terminal:

# systemctl restart httpd

Testing the Reverse Proxy

You will need to visit the following URL:

You will be redirected to the main website if everything is working correctly.

Read our Detailed Proxy Server Guide!