Apache Web Server Reverse Proxy



  • Configure Apache Web Server for Websockets using Reverse Proxy This article provides basic steps to configure Apache Web Server to work with Websockets. We recently created a Spring based web application that uses web sockets for live streaming of data from the Tomcat 8.x server.
  • Apache can be used as a reverse proxy to relay HTTP/ HTTPS requests to other machines. This is common practice and comes with two main benefits: Security – Your Apache instance can be put in a DMZ and exposed to the world while the web servers can sit behind it with no access to the outside world.

Table of Contents

A reverse proxy is used to redirect requests for a Web site to a number of servers for a client. SWatch Reader Favorite! A forward proxy server provides Internet access for any number of clients via a single server. Learn how to configure your Apache server to accomplish these tasks and reap the benefits.

Introduction

Apache is the most popular HTTP server which comes with access to a very wide range of powerful extensions. Apache can be configured as a proxy to redirect HTTP traffic to other servers. When Apache is configured as a reverse proxy, it receives HTTP requests from the internet, and forwards them to another server to process the request. This server, often referred to as a backend server, sends a response through the proxy back to the client.

A proxy server is one which forwards client requests to another server instead of fulfilling them itself. There are two main types:

  1. A forward proxy forwards to an arbitrary destination, typically on behalf of a particular set of clients.
  2. A reverse proxy forwards to a fixed destination, typically on behalf of arbitrary clients.

In this tutorial, we will learn how to set up Apache on Ubuntu-14.04 server and use it as a reverse-proxy to welcome incoming connections and redirect them to another server. For this purpose, we will use mod_proxy extension and other related Apache modules.

Requirements

  • A server running Ubuntu-14.04
  • A static IP Address for your server

Install Apache

Let's start making sure that your Ubuntu-14.04 server is fully up to date.You can update your server by running the following command:

With the server up to date, you can continue the process and install Apache on your server.

You can install Apache by simply running the following command:

Once Apache has been installed, start the Apache service and configure it to start automatically when the server boots:

Install mod_proxy and other modules

mod_proxy is the Apache module that implements a proxy/gateway for Apache HTTP Server, supporting a number of popular protocols as well as several different load balancing algorithms. It is used to manage connections and redirect them.

You can install mod_proxy and its dependencies using the following command:

Let's continue with installing the build-essential package for application building. This package can be used to install certain things from source.

Run the following command to install build-essential package:

Nginx Web Server

Configure Apache for Proxy

Before configuring Apache, you will need to enable some necessary modules.

Run the following command to get a list of available Apache modules:

You should see the list of all the modules:

Next, you can run the following commands to enable the modules one by one:

Apache

Next, you will need to disable Apache default configuration file 000-default.conf and create a new virtual host file inside the /etc/apache2/sites-available directory to set up 'proxying' functionality.

To disable the 000-default file, run:

Then, create a new virtual host file:

Add the following lines to suit your needs:

Save and close the file.

Enable new virtual host file:

You will also need to tell Apache to listen on port 8080.

You can do this by editing the ports.conf file:

Add the following line:

Save the file and restart Apache.

Proxying should be working for you now. When you access the URL http://server-ip-address:80 in a browser, it will show the application which is running on http://server-ip-address:8080. The browser is not aware that the application is running on port 8080.

Enable SSL Reverse-Proxy Support

If you want to enable SSL support to your Reverse-Proxy connections, then you will need to enable the SSL module first.

To enable this module, run:

Apache Reverse Proxy Configuration

After you have enabled SSL, you’ll have to restart the Apache service for the change to be recognized.

Next, you will need to generate self-signed certificate. For testing purposes, you will need to generate a private key (ca.key) with 2048 bit encryption.

Using-apache-web-server-as-reverse-proxy-for-asp Net Core

To do this, run:

Then generate a certificate signing request (ca.csr) using the following command:

You should see the following output:

Apache Web Server Reverse Proxy Download

Lastly, generate a self-signed certificate (ca.crt) of X509 type valid for 365 keys.

Create a directory to place the certificate files we have created.

Next, copy all certificate files to the /etc/apache2/ssl directory.

Now all the certificates are ready. The next thing to do is to set up the Apache to display the new certificate.

For this, you need to create new virtual host file proxy-ssl-host.conf

Add the following content:

Save and close the file.

Enable new virtual host file:

Now, restart the Apache service to make this change take effect:

That’s it. You can now access your server using the URL https://server-ip-address.

Enjoy!......