In an Nginx reverse proxy setup where the frontend Nginx accepts requests on 443 (HTTPS) and performs round-robin load balancing internally on 80 (HTTP), you may encounter a Mixed Content error in Chrome.
To fix this, add the following to the top of wp-config.php:
/** mixed content the page at ' url ' was loaded over https wordpress nginx */
/** When using proxy settings, you need to set it to redirect via https! */
/** Note: The HTTP_X_FORWARDED_FOR environment variable name may vary slightly depending on your server environment (AWS, etc.), so verify it */
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$_SERVER['HTTPS'] = 'on';
}
If you can modify the nginx.conf file on the internal 80 (HTTP) side, you can also use this approach:
Either option works fine.
location ~ \.php$ {
include fastcgi_params;
# mixed content the page at ' url ' was loaded over https wordpress nginx
# When using proxy settings, you need to set it to redirect via https! From here
fastcgi_param HTTPS on;
fastcgi_param HTTP_X_FORWARDED_PROTO https;
# To here
fastcgi_intercept_errors on;
fastcgi_pass php-fpm;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
