wordpress绑定多域名登录

18 3.9~5.0 分钟 1747

起因

我在家里的NAS上部署了一个wordpress服务,通过反向代理可以在公网访问,但是NAS上做的反代网址都是有端口号的,最近我不是开始玩vps了吗,我想着在vps上通过frp穿透再通过反代进行访问就可以无端口号访问了。想着挺简单,其实很麻烦,我碰到的有下面两个问题:

  1. wordpress的后台默认只能绑定一个域名,可以设置反代后的地址,但是这个环节一旦出错可能wordpress就无法访问了,这个错误我犯了几次,后来学精了,操作前先把整个wordpress目录备份;

  2. frp穿透再反向代理后wordpress页面的样式丢失,应该是https的问题。

一个个来解决

首先是wordpress无法绑定多个域名的问题

找到wordpress安装目录里的wp-config.php文件,在/* Add any custom values between this line and the "stop editing" line. */这一行下增加如下内容:

define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);

这个可以保证wordpress不再使用后台绑定的域名,而是网页内容会随着访问的域名进行变化,包括后台,上传的资源地址等。

这个地方会出现的问题是,我的最终目标是通过https访问,网上看到有些文章说将上述代码中的http改为https即可,但我试了,是不行的。

再来设置frp

在NAS客户端的frpc.toml配置文件中增加配置,例如我的配置如下:

[[proxies]]
name = "nas_wordpress"
type = "http"
localPort = 8888
customDomains = ["xxx.yyy.zz"]

xxx.yyy.zz域名解析到你的frp服务器上,如果都没问题的话,其实此时就已经可以通过http://xxx.yyy.zz来访问NAS里的wordpress,而在局域网里还是可以通过以前的方式来访问。

我这里使用的是http而不是https,因为我想通过vps反代来进行https访问,证书都在vps管理,可以自动续签,在这里怎么设置我并没搞清楚。

这里出现了一个问题

本来我觉得既然http已经可以访问了,那么通过1panel创建一个网站进行反向代理不就可以直接https访问了吗,但经过实践发现,这样做可以访问wordpress的主页,但是网页的样式全部丢失了,而且输入登录页面也会报错,上网搜索了一番发现可能是wordpress不认https

继续来解决https访问的问题

首先先设置wordpress,还是在刚才那个wp-config.php文件的最开始<?php=下方增加如下代码:

$_SERVER["HTTPS"] = "on";
$_SERVER["SERVER_PORT"] = 443;

然后在服务器1panel里设置反向代理,在配置文件中增加如下代码:

 fastcgi_param HTTPS "on";
 fastcgi_param SERVER_PORT 443;

按照上述方法设置好后重启NAS上的wordpress服务,即可通过反向代理后的https://xxx.yyy.xx来访问了。

最后

其实如果只是写博客的话直接在vps上部署wordpress或其他博客服务就可以了,博客用不了多少硬盘容量的,省的折腾,例如1panel可以一键部署。而我家里NAS上的wordpress我是做了一个播客服务器,自己上传音频平时当成播客听,所以需要大空间,即便这样,我使用了两年也只用了不到6G容量,所以,没事别折腾😀

最最后

上面这些都做完后我发现原来局域网里通过http://192.168.1.1:888的地址就无法访问了😀😀不过这不重要😀