搞Docker时候遇到各种奇葩问题。
WordPress官方默认Docker是基于Apache来做的,但为了自动加上SSL,我用了一个Nginx容器来做反向代理。于是问题出现了:用HTTPS访问Nginx,生成出来的网页里面所有生成的URL都是HTTP,而不是HTTPS。
解决办法:在wp-config.php里面加上这样几句话:
if((!empty( $_SERVER['HTTP_X_FORWARDED_HOST'])) || (!empty( $_SERVER['HTTP_X_FORWARDED_FOR'])) ) {
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
$_SERVER['HTTPS'] = 'on';
}
就是说,如果发现我们用HTTPS访问反向代理,那么给全局变量里面增加一个HTTPS的Flag。
所以说呢,直接跑FPM的Docker,加上Nginx反代就好了嘛……Apache的Docker会麻烦一些。
发表回复