• Skip to main content
  • Skip to primary sidebar
  • Home
  • WordPress
  • web Hosting
  • linux
  • mysql
  • nginx
  • apache2
  • devops

Raju Ginni

wordpress tutorials seo hosting etc

You are here: Home / nginx server tutorials (installation, configuration, performance tuning, security) / use nginx as reverse proxy and load balancer for apache wordpress

use nginx as reverse proxy and load balancer for apache wordpress

Table of Contents

Toggle
  • #1 install apache server
    • #2 change apache listening port from 80 to 8080
  • #2 install nginx server
    • #2.2 edit nginx conf file
    • #2.3 nginx server block
  • Using nginx as a load balancer
    • load balancing Algorithms

#1 install apache server

sudo apt update & sudo apt upgrade
apt install apache2
check the webpage by typing address.
if not working.
check apache server status whether it’s  running or not.
service apache2 status.
// If any errors comment below or read apache errors

#2 change apache listening port from 80 to 8080

sudo ufw app list
apache full means both http & https 80,443 ports.
edit apache default server configuration file & change listen port from 80 to 8080
nano /etc/apache2/ports.conf
change 80 to 8080
nano /etc/apache2/sites-available/default-000.conf
change
{listen *.80 to listen ipadress.80}
<VirtualHost 127.0.0.1:8080>[…]
service apache2 reload
now webpage not works.
logging user IP address for nginx as forward proxy
etc/apache2/apache2.conf and replace %h with %{X-Forwarded-For}i:
  1. Debian ubuntu
sudo apt install libapache2-mod-rpaf
restart apache2
service apache2 restart

#2 install nginx server

apt install nginx && systemctl enable nginx.service && service nginx restart
check your ip address for live nginx server.
#2.1 edit proxy parameters
sudo nano /etc/nginx/proxy_params
proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme;
Or

#2.2 edit nginx conf file

nano /etc/nginx/nginx.conf
Add in http block
proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme;  client_max_body_size 100M; client_body_buffer_size 1m; proxy_intercept_errors on; proxy_buffering on; proxy_buffer_size 128k; proxy_buffers 256 16k; proxy_busy_buffers_size 256k; proxy_temp_file_write_size 256k; proxy_max_temp_file_size 0; proxy_read_timeout 300;

#2.3 nginx server block

server {
listen:80
root /var/www/html
server_name example.com
location / {
 proxy_pass http://localhost:8080;
 include /etc/nginx/proxy_params;      }
}
including proxy params not necessary if include those in http block.
sudo service nginx reload
curl -I website.com
http 1.1 ok
server signature
benefits of using nginx as reverse proxy
#i
#1 less cpu resources & handles many connections
#2 using standalone nginx is complicated because of static module configurations
#3 we can still use apache dynamic modules strengthening security.
#4ssloffloading encrypted content from users normal http to backend server.
#5nginx caches static content & delivers better than apache due to htaccess
#load balancing if one backend server down then it sends another backend server

Using nginx as a load balancer

#applicable when 2or more backend servers are there.
We take 4backend servers
simply distributes based on conditions
which server to send this connection

load balancing Algorithms

a. round Robin algorithm (uses round Robin by default)
b. least connected: (sends least connection handling server)
c.ip hash(client ip address decides where to send connection )
to use nginx as load balancer it must be reverse proxy.
#part 1-3 setting up nginx as reverse proxy
http {  upstream crmdev {   server 192.168.101.1:8080;   server 192.168.101.2:8080;  }  server {      listen 80;      location / {          proxy_pass http://crmdev;      }  }}
#part 4use nginx as load balancer
least_conn;
ip_hash;
default weight = 1
server 192.168.101.3:8080 weight 2;
server 192.168.101.1:8080 max_fails=3 fail_timeout=30s
if 3 fails in 30seconds then server remain unavailable for 30seconds.
backup server
only gets request after 4 servers gets down.
upstream backendserver {    server 192.168.101.1:8080 max_fails=3 fail_timeout=30s;    server 192.168.101.2:8080;    server 192.168.101.3:8080 weight 2;    server 192.168.101.4:8080;    server 192.168.101.5:8080 backup;}
load balancing in wordpress while post getting updates
load balancer >>server 1 &server 2,3,4>>mysql server.
1load balancer, 2 wp sites, 1 db server.woocommerce.
each wp server shares same db server.
Blue-Green Deployment”
load balancing a e commerce website
Reverse proxy vs load balancer
reverse proxy can be load balancer.
load balancer without reverse proxy not a concept.
load balancing on single server
A load balancer distributes incoming client requests among a group of servers
It’s pointless to load balance a single server. What load balancing does is decide which server to use based on some criteria (typically load).

Primary Sidebar

nginx server tutorials (installation, configuration, performance tuning, security)

  • Letsencrypt SSL Installation on apache/Nginx ubuntu / debian wordpress
  • fix error 520 522 524 on cloudflare wordpress godaddy nginx etc
  • nginx fastcgi cache wordpress how to configure
  • install LEMP Stack on 22.04 LTS Nginx MySQL PHP fpm #wordpress #digital ocean
  • Apache vs nginx (connection handling, modules, memory usage)
  • Pagespeed module install, configure, monitor, errors ft nginx &apache
  • nginx errors (504,502, 413, unable to start, syntax errors)
  • nginx conf explained best config file performance tuning tips nginx.conf location errors tutorial
  • use nginx as reverse proxy and load balancer for apache wordpress
  • nginx rewrite rules with examples 301 redirection
  • nginx modules list (enable, disable, upgrade, install dynamic module)
  • php fpm pool manager configuration settings based on server spike high cpu wordpress
  • php fpm restart nginx ubuntu enable status page, monitor etc
  • what is TTFB & how to Reduce it (server response time) Google pagespeed
  • letsencrypt install configure on ubuntu / debian nginx
  • Top 10 tips to improve nginx server security
  • nginx performance tuning connections, buffers file descriptors
  • enable brotli compression nginx brotli vs gzip
  • nginx installation on ubuntu 20.04 LTS
  • monitor nginx request with nginx status amplify datadog new relic
  • SSL faster reduce TLS hand shake improve https performance
  • nginx rate limiting explained by location time specific url
  • datadog nginx integration installation process
  • newrelic nginx integration process and errors fix and metrics
  • php fpm seems busy fixed warning and max children reached to handle max connections / requests
  • Php fpm configuration for 1000 concurrent connections server busy max children reached
  • php fpm ondemand vs dynamic vs Static (the dynamic pool problem)
  • nginx upstream response is buffered to a temporary file
  • php fpm install ubuntu 20.04 nginx
  • install phpmyadmin ubuntu nginx 22.04
  • upgrade php fpm ubuntu nginx 7.4 to 8.2
  • nginx add last modified header (remove, php wordpress)
  • php fpm dynamic pool manager settings
  • nginx fastcgi cache purge
  • nginx open file limit connections ulimits sysctl
  • php fpm high cpu usage WordPress 4 solutions nay work for you
  • nginx buffer size for wordpress
  • Cloudflare error code 524 nginx a timeout error occured
  • server configuration for 1000 concurrent users

hi i am raju ginni, primalry i manage wordpress websites on GCP cloud platform as a cloud engineer, and create content on passionate things.
you can follow me on youtbe

© 2025 - All Rights Reserved Disclaimer & Privacy Policy