(写于2024-06-16,2025-7-31小改)

这是写的第一篇博客,就当自己折腾服务器的记录吧,高考前可能也不会怎么折腾了(),作为服务器折腾的纯新手遇到的问题还是挺多的。

环境:

Ubuntu 22.04.1 LTS; Docker Compose version v2.27.0安装的wordpres6.5.4 ;Cloudflare解析好的域名

以下问题会同时出现:

wordpress无法发评论 显示"cannot fetch";一些主题无法保存设置;一些主题的说说,Wordpress的文章、页面的可视化编辑器、切换可视化/文本的按钮点击均无反应;区块编辑器保存失败,提示“网站已下线”等。

在百度和google一番搜索后,可能是我搜索关键词不够好,给出的解决方案里有的说要关闭全部插件,有的说要在wp-config.php文件下添加这串代码

define('CONCATENATE_SCRIPTS', false);

还有的说切换主题的。经过尝试都不行,症状仍未解决。直到看见了这篇知乎修复WordPress经典编辑器空白可视化不可用的5种方法 - 知乎 (zhihu.com),发现可能是Cloudflare的"伪"https的问题即“灵活”防火墙模式导致CDN和服务器本身仍然没有SSL链接。

因此接下来的目标就是给服务器安装证书,我首先尝试了apache2安装Cloudflare签发的证书,但是虽然apache2配置了证书("完全"模式下可以访问测试页),可是反向代理却设置不好。求助亲友之后得知Caddy可以自动配置https和简单配置反向代理!

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
 
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
 
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
 
sudo apt update
 
sudo apt install caddy

之后在配置文件里简单修改即可

cd /etc/caddy
nano Caddyfile

把原来的:80修改成自己的域名 ; reverse_proxy注释取消掉,后面改成localhost:{wordpressDocker容器端口},像这样就能配置好反向代理,实现通过域名来访问docker容器。

	umiarchive.moe {
#       # Set this path to your site's directory.
#       root * /usr/share/caddy
 
        # Enable the static file server.
        file_server
 
        # Another common task is to set up a reverse proxy:
        reverse_proxy localhost:8080
 
 
}

之后回到docker-compose.yml里面修改配置文件,让出80端口给Caddy工作(8080:80 表示将容器的 80 端口映射到主机的 8080 ,也即主机端口:容器端口)

*其他内容*
     ports:
       - "8080:80"
*其他内容*

之后在防火墙开放80和443端口,重启Caddy和docker-compose文件,在Cloudflare调整防火墙模式为"完全",服务器就自动变为HTTPS,以上问题全部就解决了!

此作者没有提供个人介绍。
最后更新于 2025-07-31