====== HTTPS in WordPress behind a NGINX Reverse Proxy with SSL Offload ======
Enabling HTTPS in WordPress behind a NGINX Reverse Proxy SSL Offload
1. Leave the WordPress Address (URL) as HTTP\\
2. Change the Site Address (URL) to HTTPS
Note: If you mess up the above settings and cannot reload WP, then you may change this in the ''options'' table in the WP database
3. Add these lines to wp-config.php (I added it at the beginning)
// Added for HTTPS behind a NGINX Reverse Proxy with SSL Offload
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'];
}
4. I have the below proxy header settings in my NGINX (for all sites):
### proxy-header ###
proxy_set_header Accept-Encoding "";
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-By $server_addr:$server_port;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
map $scheme $msiis { http off; https on; }
proxy_set_header Front-End-Https $msiis;
Reference: https://www.variantweb.net/blog/wordpress-behind-an-nginx-ssl-reverse-proxy/