Yii Behind a reverse proxy with SSL

If you are hosting Yii behind a reverse proxy, for example nginx, and you are having issues with your logs showing the proxies IP, or the urls being created arn’t being created for SSL because your SSL certs are located on your reverse proxy instead of the Yii server, this code may be able to help you. I placed them in the very top of Yii’s entry script, index.php


$_SERVER['SERVER_PORT'] = 443;

$_SERVER['HTTPS'] = 'on';

if(isset($_SERVER['HTTP_X_REAL_IP'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP'];

Make sure your reverse proxy added the HTTP_X_REAL_IP header to the request. There is much documentation on this all over the web.