服务器优化固然很重要,nginx的ssl负载能力也是一个大问题,这次选择的方案是把ssl抛给CDN处理,回源全部使用http,这样可以大大提高WEB服务器的负载能力。
但是WordPress会对ssl、域名做相应的判断,以及自动跳转。
这就会导致https访问http回源的情况下,页面将会多次重定向导致页面无法访问。
首先来看看wp是如何判断是否https的
function is_ssl() { if ( isset( $_SERVER['HTTPS'] ) ) { if ( 'on' == strtolower( $_SERVER['HTTPS'] ) ) { return true; } if ( '1' == $_SERVER['HTTPS'] ) { return true; } } elseif ( isset($_SERVER['SERVER_PORT'] ) && ( '443' == $_SERVER['SERVER_PORT'] ) ) { return true; } return false; } |
关键变量在$_SERVER['HTTPS']
上,编辑wp-config.php加入下面代码
/** * SSl修正。 * * https 使用 http 回源 */ if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { $_SERVER['REQUEST_SCHEME'] = 'https'; $_SERVER['HTTPS'] = 'on'; } |