• Domains
  • Web Hosting
  • WordPress Hosting
  • Reseller Hosting
  • Cloud VPS
  • Dedicated Servers
  • Domains
  • Web Hosting
  • WordPress Hosting
  • Reseller Hosting
  • Cloud VPS
  • Dedicated Servers
home/Knowledge Base/Web Servers/Setup Nginx Reverse Proxy over Apache on Debian or Ubuntu
Popular Search:Dedicated Server, CentOS, Web Hosting

Setup Nginx Reverse Proxy over Apache on Debian or Ubuntu

19 views 0 December 6, 2019 aklwebhost

Nginx is a lightweight web server that has been proven to serve static files faster than Apache. This tutorial will guide you how to install Nginx as reverse proxy over Apache web server.

Requirements

You have installed Apache on your server. Apache is already running a site on port 80.

Change Apache listening port

Edit /etc/apache2/ports.conf to make Apache listening to port 8080 instead of default port 80.

Find following line:

NameVirtualHost *:80
Listen 80

Change it to:

NameVirtualHost *:8080
Listen 8080

Do not forget to your existing vhost listening port in /etc/apache2/sites-enabled/*

Change:

<VirtualHost *:80>

To:

<VirtualHost *:8080>

Disable Unuse modules in Apache

Since HTTP requests is now handled by Nginx, we can disable KeepAlive in Apache. Edit /etc/apache2/apache2.conf and change:

KeepAlive Off

Also, run following commands to disable unused modules.

a2dismod deflate
a2dismod cgi
a2dismod autoindex
a2dismod negotiation
a2dismod ssl

Install forward module

Install mod_rpaf in Apache to forward visitor IP to Apache. Otherwise, your scripts will read REMOTE_ADDR values as server IP.

apt-get install libapache2-mod-rpaf

Stop Apache service

/etc/init.d/apache2 restart

Setup Nginx

Install Nginx.

apt-get install nginx

Remove default vhost to prevent conflicts.

rm -rf /etc/nginx/sites-enabled/*

Create a new default vhost:

cat >/etc/nginx/sites-available/000-default <<EOF
server {
    access_log off;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080;
    }
}
EOF

ln -s /etc/nginx/sites-available/000-default /etc/nginx/sites-enabled/000-default

Create vhost for existing website to forward request to Apache:

cat >/etc/nginx/sites-available/domain.com <<EOF
server {
    server_name www.domain.com domain.com;
    root /var/www/domain.com/;

    access_log off;

    # Static contents
    location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {
        expires max;
    }

    # Dynamic content, forward to Apache
    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8080;
    }
}
EOF

ln -s /etc/nginx/sites-available/domain.com /etc/nginx/sites-enabled/domain.com

Restart Nginx and it’s done.

/etc/init.d/nginx restart
Tags:Setup Nginx Reverse Proxy over Apache on Debian or Ubuntu

Was this helpful?

Yes  No
Related Articles
  • Setup Spigot Server on Arch Linux
  • How To Install OSSEC HIDS on a CentOS 7 Server
  • Initial Setup of a CentOS 7 Server
  • Using StrongSwan for IPSec VPN on CentOS 7
  • Hot Backups with Percona XtraBackup on the One-Click WordPress App
  • Installing Rust on Ubuntu 14.04
Leave A Comment Cancel reply

Web Servers
  • Setup Nginx Reverse Proxy over Apache on Debian or Ubuntu
  • How To Setup Apache on Windows Server
  • Setting up IIS on Windows Server
  • Setup NGINX, PHP-FPM, and MariaDB on Debian 8
  • Apache Virtual Hosts on Ubuntu 14.04 LTS
  • Install Lighttpd with PHP5 and MySQL (LLMP Stack) on Ubuntu 14.04
View All 37  
Popular Articles
  • Using StrongSwan for IPSec VPN on CentOS 7
  • Disabling SSDP (Linux / Windows)
  • Can I pay by Western Union?
  • Can a Coupon Code Discount Be Carried Forward While I Upgrade My VPS Account
  • Can I pay multiple due invoices using a single transaction?
KB Categories
  • Billing
  • Cloud Hosting
  • CMS Hosting
  • cPanel/WHM Control Panel Guide
  • Dedicated Servers
    • AMD Opteron 6272
    • Arch
    • Backup Storage
    • Bandwidth
    • Basic Security
    • BSD
    • CentOS
    • Containers
    • CoreOS
    • DDoS Protection
    • Debian
    • Dedicated Server Control Panel
    • Intel Core i5 3550
    • Intel Core i5 4570
    • Intel Core i7 3770
    • Intel Core i7 4770
    • Intel Xeon E3 1230 V3
    • Intel Xeon E3 1245 V2
    • IP Space
    • Linux Guides
    • Minecraft
    • Networking
    • Server Apps
    • Server Troubleshooting
    • Ubuntu
    • Windows Guides
    • Windows Server 2008
    • Windows Server 2012
  • Domain Names
  • Email Support Documentation
    • Setup IMAP or POP
    • User Features – How To
    • Webmail – How To
  • FTP (File Transfer Protocol
    • CuteFTP Guide
    • FileZilla Guide
  • Game Servers
  • MySQL and MariaDB
  • Node.js
  • Plesk Web Hosting Guide
  • VPS Server
  • Web Servers

  Setup NGINX, PHP-FPM, and MariaDB on Debian 8

Setup Percona on Debian 7  

  • Privacy Policy
  • Terms of Use
  • © 2022 AKLWEB HOST LLC, All Rights Reserved.

Popular Search:Dedicated Server, CentOS, Web Hosting