Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Sample Nginx reverse proxy to Apache set up for Wordpress.
<VirtualHost *:{PORT}>
ServerName www.yourdomain.com
ServerAdmin mail@domain.com
DocumentRoot /var/www/yourdir/
<Directory /var/www/yourdir>
Options Indexes FollowSymLinks
AllowOverride all
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# Add this file to your /etc/nginx/sites-available directory, renaming it to
# the domain of your website.
# Change the: server_name, port
# Credit to http://mattkirman.com/2011/06/01/how-to-speed-up-wordpress-with-nginx/.
server {
listen 80;
server_name www.yourdomain.com; # change this
# global gzip on
gzip on;
gzip_min_length 10240;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
gzip_disable "MSIE [1-6]\.";
add_header Cache-Control public;
location / {
proxy_pass http://127.0.0.1:{PORT}; # change this
proxy_buffering on;
proxy_buffers 12 12k;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
}
<?php
// Add this to the top of your wp-config.php file.
// Handle reverse proxy, passing the IP to the server.
// This is used by some plugins to fetch the user's IP.
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = $ips[0];
}
?>
@Scepticalist

This comment has been minimized.

Copy link

Scepticalist commented Feb 14, 2019

I have my Wordpress running under Apache on a separate server - do you know if this config will work for that (changing the proxy_pass to the server IP?)

@hyleck

This comment has been minimized.

Copy link

hyleck commented Mar 22, 2019

When you put a ssl to domain certificate, it stops working.

@heltonvalentini

This comment has been minimized.

Copy link

heltonvalentini commented Jun 3, 2019

Thanks mate this was really useful form me.

@mubasshir

This comment has been minimized.

Copy link

mubasshir commented Jul 1, 2019

When you put a ssl to domain certificate, it stops working.

@hyleck, did you find any solution for this?

@sinabio

This comment has been minimized.

Copy link

sinabio commented Sep 5, 2019

When you put a ssl to domain certificate, it stops working.

@hyleck, did you find any solution for this?

use following code on wp-config.php

/**

  • Handle SSL reverse proxy
    */
    if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
    $_SERVER['HTTPS']='on';

if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.