海欧的博客

  • Navidrome
  1. 首页
  2. 服务器
  3. 正文

阿里云服务器部署wp-反代

2026年2月2日 28点热度 0人点赞 0条评论

阿里云服务器部署wp-反代

image-20260201213035312

1.前言

接着上一部分,目前我们已经完成容器的部署,可以通过IP加端口访问wordpress了,但是还需要加上域名访问才能使用。在这一篇中,我简单对反向代理的部署过程以及发现的问题进行讲述,和针对于国内服务器网络环境的反代设置的探索过程。假设你已经有域名了。

2.NPM设置

我们通过IP+端口号进入NPM页面,设置源地为blog.moving.cn,目的地为http://宿主ip:8089。这里我们使用宿主机的ip加端口,需要ufw把容器的8089端口打开,或者填写host名称(容器名称)+80端口。Force SSL的设置暂时关闭。npm默认账号密码:[email protected]和默认密码:changeme

image-20260201215144572
image-20260201215540646

我们在域名解析的设置上把blog.moving.cn指向服务器的地址(这里我们使用cloudflare的解析,把CDN代理关闭,仅DNS代理),在这里我们不一定使用cloudflare的解析,我域名是阿里购买的,是可以使用阿里云的域名解析:

image-20260201215919449

如果我们的域名完成实名+备案,那么最终的访问效果是如下图所示:
image-20260201220501308
如果你没有部署wp容器,反代跳转就出现网关错误:

image-20260201221358560

如果没有完成实名+备案,就显示如下:
image-20260201220633320
显示“域名暂时无法访问”的原因是,我们的npm使用了80/443端口进行代理,但是国内只有备案的域名才可以使用这两个端口,还好我有已经备案的域名,也有无需备案的域名,如果要使用国内服务器就一定要备案,各有利弊吧。

3.数据库设置

我们通过phpMyAdmin访问数据库,要求数据库排序集是unicode的,这个在容器部署的环境变量文件.env设置了。如果不是unicode排序,日后备份迁移会不兼容。
image-20260201221719021

4.开启SSL安全访问

接下来我们需要开启SSL安全访问,我们尝试通过以下方法完成:

  1. 使用NPM的免费证书Let's Encrypt
  2. 使用NPM的cloudflare DNS申请证书
  3. 使用cloudflare的源证书
  4. 使用cloudflare的隧道服务
  5. 使用acme脚本手动申请证书
  6. 使用阿里云的个人免费证书

4.1使用NPM的免费证书Let's Encrypt

非常抱歉,使用npm申请证书是有一定的网络要求的,Let's Encrypt的api在没有魔法情况下是访问不了

image-20260201225902509

4.2使用NPM的cloudflare DNS申请证书

我们使用NPM的cloudflare DNS申请证书,需要获取cloudflare 的 Tokens:

image-20260201230030220
image-20260201230124714

非常抱歉,使用NPM的cloudflare DNS申请证书也是访问不了的。

4.3使用cloudflare的源证书

image-20260201230539688
image-20260201230600904
image-20260201230849107
为了以防万一阿里云对cloudflare的cdn节点的拦截,我对云防火墙增加修改,加入ipv4/ipv6列表放行规则:

image-20260201231315480

使用curl命令请求头部信息,返回522:

image-20260201231536958

浏览器访问显示:错误代码 522,非常抱歉,也是访问不了的。
image-20260201231023335

4.4使用cloudflare的隧道服务

正常来说,使用cloudflare的隧道访问,是可以绕开特殊的网络限制的,比如我家里的多台服务器,它们都安装了cloudflare tunnel服务,都绕开了80/443的访问限制。那么我们尝试阿里云使用隧道服务,保持使用 cloudflare的源证书,尝试绕开阿里云的限制。

image-20260201233440170
image-20260201233529600
image-20260201233625322
image-20260201233825553

在我们运行编排部署后,发现阿里云alios_Tunnels隧道连接器根本连接不到cloudflare,但是相同的compose文件拷贝到cloudcone服务器部署,却能发现ccos_test隧道能正常通信。

image-20260201234619285

最后,非常抱歉,也是访问不了的。

4.5使用acme.sh脚本手动申请证书

配置acme.sh申请域名:

acme.sh 在运行安装后,配置文件默认在 /root/.acme.sh/account.conf,用 nano 编辑器打开该文件,填写好阿里云的DNS权限的token:

image-20260202001435355
acme.sh --issue --dns dns_ali -d blog.moving.cn #执行申请证书脚本

image-20260202001040906
image-20260202001201248
发现acme脚本的注册,网络根本不通。最后还是非常抱歉,访问不了的。

4.6使用阿里云的个人免费证书

以上都不行,起码有兜底的阿里云免费证书,虽然只有3个月且不能自动续期,但是起码能使用。使用阿里云的个人免费证书,需要我们关闭cloudflare的CDN代理。

image-20260202002353225

PS:ERR_CERT_AUTHORITY_INVALID是证书不认 / 证书链不全。比如不使用cloudflare CDN时候,源服务器SSL却使用cloudflare的源证书,那就不能通过证书验证。
image-20260201235409021
注意:阿里云证书不支持泛域名:

image-20260201235710950
image-20260202000503362

启用阿里云证书,使能SSL:

image-20260201235514783
image-20260201235924639

PS: 【net::ERR_CERT_COMMON_NAME_INVALID】 :表示你申请的 SSL 证书绑定的域名和实际访问的域名不匹配。比如你申请的是moving.cn根域名证书,却访问blog.moving.cn子域名,就会出现“ERR_CERT_COMMON_NAME_INVALID”;所以如果你子域名很多,就必须很多证书的申请,超级麻烦,还是泛域名好啊。

最后访问子域名,发现我们访问正常,还带上眼前一亮的小锁头:

image-20260202000219633

5.最后

最后,我们所有方法都测试了一遍,只有兜底的方法能使用。对于阿里云国内服务器,还是不要使用cloudflare的cdn吧。 暴露我的个人信息其实也没什么(当然你可以购买国内的CDN与不使用CN后缀域名,就不会暴露个人信息),主要是这个服务器是自己使用的比较多,不公开的,主要是做备份与私有服务和测试使用的,就怕cloudcone的服务器挂了,起码我还有阿里云服务器的备份;其实说不定DD一个纯净系统是可以的解决的,有可能阿里在系统里面预安装了一些规则限制访问导致的,但是DD的风险我又不想冒险;

我科普一下cloudcone的cdn代理的常识:关闭 Cloudflare 小黄云(仅 DNS 解析、不使用 CDN 代理)后,Cloudflare 的 SSL/TLS 模式(完全 / 灵活 / 严格)会完全失效的,相当于没有使能。

其实在解决域名开启SSL的问题上,我是开过阿里云的工单的,但是还是没有解决这个问题:
image-20260202004818996

最后总结一下,目前完成wordpress的部署与域名的反代和SSL安全访问,虽然国内服务器有诸多限制,但是作为价格便宜,访问稳定等诸多优点,入手玩玩还是很不错的。

标签: WordPress 云服务器 反代 容器
最后更新:2026年2月2日

haiou

理工男极客工程师

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

归档

  • 2026 年 3 月
  • 2026 年 2 月

分类

  • 嵌入式
  • 服务器

00:00
目录
  • 阿里云服务器部署wp-反代
    • 1.前言
    • 2.NPM设置
    • 3.数据库设置
    • 4.开启SSL安全访问
      • 4.1使用NPM的免费证书Let's Encrypt
      • 4.2使用NPM的cloudflare DNS申请证书
      • 4.3使用cloudflare的源证书
      • 4.4使用cloudflare的隧道服务
      • 4.5使用acme.sh脚本手动申请证书
      • 4.6使用阿里云的个人免费证书
    • 5.最后

COPYRIGHT © 2026 海欧的博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang