WordPress 启用CDN http回源

0

服务器优化固然很重要,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';
}

发表评论

您的邮箱不会公开,当您的评论有新的回复时,会通过您填写的邮箱向您发送评论内容。 必填字段 *

为何看不到我发布的评论?

正在提交, 请稍候...