公开博客的最后一公里(4)

真成运维 2026-5-18 42 5/18
公开博客的最后一公里(4)

运维免费学习网站:https://www.qiuyl.com

声明

1)由于公众号发文不允许文章超链接有外链,所以很多时候需要外部超链接时,只好帖上域名的完整地址。

2)文中所使用的阿里云服务,均可在阿里云控制台的导航栏中的搜索按钮里进行搜索。如:ECS、域名、SSL,直接搜索即可。

3)尽管文章已被我阅读与修改多次,仍无法保证100%正确,如有发现错误望谅解和指正,谢谢!我会在第一时间修改,如有必要会在对应文章的评论区说明。


公开博客的最后一公里(4)
目录结构

这是一篇非常系统的内容,帮助你完成一个属于自己的网站和博客系统。以及解答你诸多问题,如:博客的作用?如何部署?SEO优化?等内容。

该系列内容耗费了非常多时间精力,内容共 9 篇。该系列内容介绍,请查看这篇:专栏介绍 如何搞定博客 | 全流程实践指南

起初这是这个系列内容是付费内容,随后我将其公开在了我的免费知识星球知识库,现在我将这篇内容免费公开到公众号。希望大家能有所收获,如果有帮助希望你不要忘记你的双击屏幕点赞👍、转发、收藏,一键三连。

学习企业级运维项目,请关注真成运维导航


B站视频版本https://www.bilibili.com/video/BV13NuwzcEAk

你好,我是真成。通过在上一篇的实操过程中,我相信你已经成功将我们的博客系统部署起来了,部署的过程是不是很简单呢。上一篇中我希望你不单只是学会部署这么简单,希望你可以对应用上云以及阿里云有更多的了解,同时了解一点实际工作中对外提供服务的知识。

上一篇中即使我们将博客系统搭建出来了,但想对外提供服务的话,我们还需要做以下操作步骤:域名解析 => 域名备案 => 配置 SSL 证书。配置了 SSL 证书我们就可以使用 HTTPS 这种安全的协议了。

域名解析

域名解析可以理解成域名转换 IP 地址的过程,这里我们可以通过阿里云来配置对应的域名解析成我们规定的 IP 地址。

我们暴露在互联网的服务,不会直接使用 IP 的形式进行。主要有以下问题:

问题 说明
记忆成本高 IP 地址难以记忆(如 203.0.113.10 vs example.com
动态 IP 问题 公网 IP 可能因网络重启、云服务调整等发生变化,导致服务不可达。通过 DNS 将域名绑定到 IP,IP 变更时只需修改 DNS 记录,用户无感知
暴露安全风险 直接暴露 IP 易被扫描攻击,缺乏域名层防护(如 CDN/WAF)

在进行域名解析前,你需要对域名进行实名。如果你在上一篇中已经实名过了,可以忽略。

公开博客的最后一公里(4)

1)绑定域名

域名控制台首页地址:https://dc.console.aliyun.com/next/index

在域名列表中查看已经购买过的域名,并点击对应域名

公开博客的最后一公里(4)

点击域名解析

公开博客的最后一公里(4)

点击添加记录

公开博客的最后一公里(4)
  • 不明白其含义时:光标放在左侧不同的选项框,右侧就有说明和例子公开博客的最后一公里(4)

添加 A 类型的 www 主机记录,值为我们服务器的公网 IP

公开博客的最后一公里(4)

为了使不输入www(三级域名为空)也能访问到服务,添加@主机记录。@代表主域名,如:yunweily.cn

公开博客的最后一公里(4)

添加了 @www 主机记录

公开博客的最后一公里(4)

这个时候可以直接使用域名访问服务了

公开博客的最后一公里(4)

但由于域名还没有备案一会就会被系统检查到,同时被网络接入商(ISP)阻断访问

公开博客的最后一公里(4)

域名备案

域名备案一般也指网站备案,网站备案也是 ICP 备案。他们都是指的一个东西,下文中就统一以 ICP 备案来说道了。

1)什么是 ICP 备案?

视频介绍:https://cloud.video.taobao.com/play/u/null/p/1/e/6/t/1/428819167019.mp4

ICP 备案的全称是互联网信息服务备案。根据《互联网信息服务管理办法》等规定,在中华人民共和国境内从事互联网信息服务时,需履行备案手续。

核心作用:

  • 确保网站主办者身份可追溯。
  • 未备案的网站会被网络接入商(ISP)阻断访问。如图:
公开博客的最后一公里(4)

首先,如果是在阿里云进行的备案。阿里云会在1个工作日内通知初审结果,再经过各省通管局会在1-20个工作日内通知终审结果。备案成功会在手机和邮箱收到备案号及相关内容,到这里网站就可支持对外访问了。

个人之前备案审核成功大概用了10天左右。

公开博客的最后一公里(4)

2)备案相关知识

根据对外提供的不同服务,备案时需要提供不同的资质,好比开车需要驾照一样。大家放心,我们个人博客这里不需要提供任何资质,只需要提供个人相关信息和网站信息即可。

更多相关资质,同样可以在阿里云中查看,推荐都去了解一下有助于日后工作https://zizhi.aliyun.com

公开博客的最后一公里(4)

3)如何备案?

一般来说,阿里云右上角都有备案或者ICP备案的字样点击即可。

公开博客的最后一公里(4)

备案流程公开博客的最后一公里(4)

后续操作根据阿里云的提示操作即可。需要注意的是:备案自己操作即可,无需购买托管备案服务替你备案,因为我们这个备案不难。

备案相关知识和疑问/问题:https://wanwang.aliyun.com/qualificationrec/bazszl?spm=5176.27804673.J_9865808500.9.287d1f58JtNGYW

公开博客的最后一公里(4)

下载 SSL 证书

进入数字证书管理服务,点击证书管理=>选择个人测试证书。这个证书是免费的每次创建的证书只有3个月的有效期,我们总共可以创建20个,所以每3个月过期之后再次创建一个证书替换,够咱们用5年了。

如果5年使用完了,免费证书也是可以再次购买的,同时购买也是免费。这一点可能由阿里云政策规则而变化。

公开博客的最后一公里(4)

根据提示要求输入对应域名

公开博客的最后一公里(4)

阿里云为了确保该域名是属于操作本人管理的,所以需要进行一个归属验证

公开博客的最后一公里(4)

点击验证之后,根据提示在对应的域名下添加一个 TXT 类型的解析记录即可

公开博客的最后一公里(4)
公开博客的最后一公里(4)

通过验证之后即可下载 SSL 证书了

公开博客的最后一公里(4)

下载两种格式的证书均可。需要注意的是:本文会以 Apache 格式证书为例,但会提到 Nginx 格式证书如何配置。

公开博客的最后一公里(4)

WordPress配置SSL证书

在配置证书之前,我们先在宿主机(购买的服务器)中执行 curl 命令验证 https 协议是否可访问。

1)通过 https 协议访问,执行curl https://www.yunweily.cn -I命令可以看到连接443端口失败。最终执行效果需要443端口可访问。

公开博客的最后一公里(4)

2)通过 http 协议访问,执行curl http://www.yunweily.cn -I命令可以看到返回状态码200成功的。最终执行效果需要返回301状态码,重定向到https://www.yunweily.cn

公开博客的最后一公里(4)

修改配置文件

我们 WordPress 容器的 Web 服务器使用的 Apache。从 Apache 配置文件 apache2.conf 可以看到,Apache 只会读取/etc/apache2/sites-enabled目录下的配置文件。所以需要把 /etc/apache2/sites-available 下的文件链接到 /etc/apache2/sites-enabled 目录下使用。

公开博客的最后一公里(4)
容器内sites-enabled目录

1)拷贝出容器中的配置文件:default-ssl.conf、000-default.conf

mkdir -p /opt/module/wordpress/sites-available
cd /opt/module/wordpress/sites-available
docker cp wordpress-blog:/etc/apache2/sites-available/default-ssl.conf ./
docker cp wordpress-blog:/etc/apache2/sites-available/000-default.conf ./

2)修改 default-ssl.conf 文件,配置 SSL 证书信息

$ grep -v '#' default-ssl.conf
<VirtualHost *:443>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        SSLEngine on
        
        # 添加或修改
        ServerName yunweily.cn
        # 添加或修改
        SSLCertificateFile      /etc/apache2/ssl/yunweily.cn_public.crt
        # 添加或修改
        SSLCertificateKeyFile   /etc/apache2/ssl/yunweily.cn.key
        # 添加或修改
        SSLCertificateChainFile /etc/apache2/ssl/yunweily.cn_chain.crt

        <FilesMatch "\.(?:cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
        </Directory>
</VirtualHost>
公开博客的最后一公里(4)
修改default-ssl.conf文件使用apache格式证书的图例

如果下载 Nginx 的格式证书类型,那么配置如下图:

公开博客的最后一公里(4)
修改default-ssl.conf文件使用nginx格式证书的图例

2)修改 000-default.conf 文件

Redirect permanent / https://www.yunweily.cn/ 作用:将所有对 HTTP 的请求重定向到指定的 HTTPS URL(确保我们的站点只能通过 HTTPS 协议进行访问),这里会重新重定向到 https://www.yunweily.cn/。

$ grep -v '#' 000-default.conf
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        # 添加或修改
        Redirect permanent / https://www.yunweily.cn/
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
公开博客的最后一公里(4)
修改000-default.conf文件,实现重定向图例

编写Dockerfile文件

需要开启 SSL 证书功能和拷贝证书文件到容器中,这里的拷贝证书也可以通过将本地目录挂载进容器方式实现。

mkdir -p /opt/module/wordpress/dockerfile
mkdir -p /opt/module/wordpress/dockerfile/apache-ssl

cd /opt/module/wordpress/dockerfile
cat > Dockerfile <<EOF
FROM registry.cn-shenzhen.aliyuncs.com/qiuyl01/wordpress:6.4.3
MAINTAINER qiuyl.com
# 开启ssl功能
RUN mkdir /etc/apache2/ssl && a2enmod ssl
COPY apache-ssl/* /etc/apache2/ssl
RUN ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl.conf
CMD ["apache2-foreground"]
EOF

docker build -t wordpress-apache-ssl-6.4.3:v1 .

修改docker-compsoe.yaml文件

修改 docker-compsoe.yaml 文件,将容器 sites-available 目录挂载到宿主机。同时替换镜像为 Dockerfile 文件制作的镜像。

cd /opt/module/wordpress/docker-compose
cat > docker-compose.yaml <<EOF
version: "3"
services:
  mysql:
    container_name: mysql-5.7
    image: registry.cn-shenzhen.aliyuncs.com/qiuyl01/mysql:5.7
    volumes:
      - /opt/module/wordpress/mysql_data:/var/lib/mysql # MySQL数据持久化
    restart: always
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: 'mysql@qiuyl.com' # MySQL的root密码
      MYSQL_DATABASE: qiuyl  # 创建名为qiuyl的数据库
      MYSQL_USER: qiuyl # 创建名为qiuyl的用户
      MYSQL_PASSWORD: 'qiuyl.com@2025' # 为qiuyl用户设置密码

  wordpress:
    depends_on:
      - mysql
    container_name: wordpress-blog
    image: registry.cn-shenzhen.aliyuncs.com/qiuyl01/wordpress:6.4.3
    volumes:
      - /opt/module/wordpress/wordpress_data:/var/www/html # WordPress数据持久化
      - /opt/module/wordpress/sites-available:/etc/apache2/sites-available  # 相比之前,只添加了这一行
    ports:
      - "80:80"
      - "443:443"
    restart: always
    environment:
      WORDPRESS_DB_HOST: mysql # 配置地址连接数据库
      WORDPRESS_DB_USER: qiuyl # 使用名为qiuyl的用户
      WORDPRESS_DB_PASSWORD: 'qiuyl.com@2025' # 输入qiuyl用户密码
      WORDPRESS_DB_NAME: qiuyl # 使用名为qiuyl的数据库
EOF
sed -i 's#registry.cn-shenzhen.aliyuncs.com/qiuyl01/wordpress:6.4.3#wordpress-apache-ssl-6.4.3:v1#g' docker-compose.yaml
docker compose down && docker compose up -d

验证https协议

通过使用 https 协议访问(curl https://www.yunweily.cn -I),返回状态码为200,说明我们这里的证书已经配置完成

公开博客的最后一公里(4)

通过使用 http 协议访问(curl http://www.yunweily.cn -I),返回状态码是301。由于配置开启了重定向,如果使用浏览器访问 http 协议时会自动跳转到 https://www.yunweily.cn

公开博客的最后一公里(4)

Location 字段是重定向后的地址:curl http://www.yunweily.cn -v

公开博客的最后一公里(4)

总结

今天我们通过 域名解析 => 域名备案 => 配置SSL证书 完成了我们博客系统(网站)对外提供服务的最后一公里。通过本篇的所有内容,如果域名已经备案完成,那么你的网站已经可以对外提供服务了。但为了后期便于维护,需要完成 WordPress 基础设置,下一篇中会介绍到。

需要注意的是:域名备案更多相关资质问题,希望你可以稍微认真的去了解一下。有助于扩充我们的视野和日后工作中的相关工作开展。

接下来,完成可以通过 WordPress 后台管理进行文章和博客系统的管理了。如果你对 WordPress 不熟悉的话,下一篇将会介绍 WordPress 的快速入门以及推荐插件和主题介绍,插件和主题会使我们的 WordPress 博客系统更加丰富。

以上就是本篇全部内容了。如果,你对本文有任何疑问,欢迎评论区留言、加群交流 学习、提问、分享经验。如果有帮助记得送出一个免费的公开博客的最后一公里(4) 感谢!

END

这篇文章有用吗?

点击星号为它评分!

平均评分 0 / 5. 投票数: 0

到目前为止还没有投票!成为第一位评论此文章。

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

- THE END -

真成运维

5月18日08:57

最后修改:2026年5月18日
0

非特殊说明,本博所有文章均为博主原创。