搭建个人博客—第二章:OpenResty+MySQL+Halo

搭建个人博客—第二章:OpenResty+MySQL+Halo

_

本章节我们重点讨论如何在第一节的基础上,通过一些小手段真正实现:域名直接访问个人博客

相较于其他教程,本篇着重介绍一些细节方面非常容易踩坑的环节,也会解释一些非常有趣的概念。

一、下载应用

进入1panel首页(链接可通过阿里云控制台直接点击进入),登录成功后点击应用商店,即可选择需要的应用。

依次下载:Web服务器-OpenResty,数据库-MySQL,建站-Halo。接下来会一一介绍这几个部分的功能和同类型应用的比较。

Web服务器

简单做一个比喻:直接租用阿里云服务器相当于拥有一间全封闭的毛坯房,在里面你可以做你想做的任何事,你可以开一间窗户专门展示给别人(个人博客)、留一部分空间放自己的杂物(云存储)、开一间游戏厅(游戏云服务器)...

简单理解上讲Web服务器(Nginx)则像一个接待员(反向代理功能),负责将来访问你服务器的人指引到不同的功能。那么究竟如何区分不同人的不同需求呢 ?此时将引入前文提到的“二级域名”

租用后的服务器有且只有一个外网IP,为了将不同的功能做以区分,通常使用二级域名的方式,他们之间的映射关系为一对多,即一个IP可对应多个域名,而web服务器则根据不同用户使用的域名,将他们指引到不同功能分区,即应用。这一步就是反向代理的通俗理解。

在1panel的应用界面,提供了一键式可视化的安装方式,点击安装,依照默认配置即可将web服务器安装成功。

这里提供的四种应用各自尤其特点,简单对比如下:

OpenResty

Nginx Pro Manager

OpenLiteSpeed

Caddy

技术基础

Nginx核心,嵌入LuaJIT

可视化Nginx管理

独立轻量化web服务器

Go语言编写

主要优势

1panel集成度较高,可直接使用1pane管理界面配置

自带Web界面,零命令行操作,简单易用

自带Web界面,支持PHP优化

自动配置HTTPS,启动即自动申请和配置

适用场景

有二次开发需求

新手快速上手,简单反向代理和HTTPS配置

WordPress等PHP站点

中小型极简站点

考虑到1panel对OpenResty的高度集成、操作简单和可扩展性强,本文使用OpenResty作为Web服务器,其他几个不再赘述。注:Web服务器有一个即可,不可重复安装(在没搞懂OpenResty功能前我居然会再安装一个Nginx Pro Manage???太离谱了)

点击安装即自动运行,显示已启动即安装成功,我们先将所有应用下载完,反向代理的配置流程将在后文详细介绍。

数据库

数据库是专门用来管理和存放数据的应用,主要的功能在于不同的应用都可以使用同一个数据库存储自己的数据,最大的优势就是:统一管理、统一存放、高效访问、安全性强。

应用商店提供的数据库类型非常之多,关系型、非关系型、图数据库等等类别都包含在内,区别和功能就不过多赘述,这里直接选择MySQL数据库。

在安装时,注意设置强安全性密码,一般情况下无需打开端口外部访问(除非有其他服务器访问的需求),其余设置保持默认即可。

建站

同样的,搭建个人博客也提供了非常多的选择方向,主流博客建站工具有Halo,WordPress(这两者第一章已对比过),Typecho等,Halo为Spring Boot+Vue.js架构,后两者都为PHP技术栈。

最近正在学习Spring Boot+Vue.js架构,再加上Halo轻量化极简优势,这里选择Halo作为建站工具。

在安装过程中,选择已经安装好的MySQL数据库,根据自己喜好配置好数据库相关信息即可。端口一栏,注意避开熟知端口号和1panel占用的端口号,同时要牢记你的Halo端口,下一步就要用到。

二、配置服务器

端口配置

着重强调一下端口的配置,在计算机网络中,为实现两主机不同应用之间的通信,在IP层(网络层)之上的传输层再次划分端口,每个应用独占一个端口,比如MySQL占用3306端口,Halo想要访问数据库服务必须通过3306端口。同样的外界想要访问你的Halo一样需要通过端口

考虑到安全性问题,服务器提供商会将除必要开放的端口全部关闭,此时,即便你的Halo已经正常运行,但仍然无法访问。

此时进入阿里云服务器控制台-防火墙界面

添加规则,自定义-TCP-你的Halo端口号-0.0.0.0即可在阿里云控制面板打开Halo占用的端口。

此时你的Halo端口按理来说是可以被访问的,但是仍然提示加载时间过长,无法访问,原因在于阿里云控制台放开的端口并不会直接作用与服务器防火墙中,我们还需进入服务器后台,添加新的防火墙规则(这个问题曾困扰我很久,到底为什么会有两套防火墙规则呢?)

点击上方远程连接按钮,在进入的terminal中按如下操作输入命令:

systemctl status firewalld     # 获取防火墙状态
firewall-cmd --list-ports      # 查看开放的端口列表
#通过这一命令可看到所有端口的开放状态,观察一下80和443端口有没有开放,如果没有开放,也需要一并开放

firewall-cmd --permanent --add-port=xxxx/tcp   # xxxx为你需要开放的TCP端口

firewall-cmd --reload          # 重载配置使永久规则生效

这一步骤完成以后,即可通过http://IP:端口/ 的方式进入Halo首页,注册账号并登录,开始配置你的博客。

至此,你的博客已经正式在互联网上跑起来的,任何人都可以通过http://IP:端口/ 方式访问你的博客。

当然到这一步还没有完,前期购买和注册的域名还没有用上,我们接着进行下一步。

注:出于安全性考虑,Halo应用端口经过反向代理是无需放开的,但同样也无法通过IP:端口的方式访问。如果已完成反向代理,可将此时放开的端口关闭。

域名划分+反向代理

为了让你的博客不再通过繁琐的IP+端口的方式访问,此时需要通过反向代理将域名与目标的IP+端口绑定。

首先来到阿里云域名控制台,进入解析控制台,点击添加记录,新增一条如:记录类型:A,主机记录:blog(任意值均可)

返回1panel控制台,在OpenResty启动的情况下点击创建。

在反向代理中依次填入主域名、代理地址(127.0.0.1:Halo端口)。

点击确认,稍等片刻即可通过二级域名顺利访问你的Halo主页了。

SSL证书配置

在1panel主页,网站-证书-上传证书,将前期申请好的SSL个人证书粘贴到此处。

返回网站-网站,点击反向代理链接,在网站设置-HTTPS中启用HTTPS-选择已有证书即可。

至此个人博客配置的全部内容已经结束,可以进入Halo主页尽情写一写文章自由创作了。

结语

简单总结一下,事实上写这篇分享本身比折腾服务器从配好到上线要费事的多,将操作的过程记录下来事实上并不难,可是在操作过程中总会有各种各样的误打误撞,许多过程是完全不懂的原理的,但写这一篇博客最起码让我补全了那些不理解的黑坑,将做这件事的流程梳离并优化一下,这种总结远比半知半解跑通博客来的实在的多。

这两篇博客是我首次尝试全程自己组织结构,向外界传递文字信息,可能语言还很青涩,内容也不够全面,不过自从高中毕业,又什么时候真正尝试过一个字一个字的完成一篇长篇大论呢?哪怕写的再不好、再水,我也想厚着脸皮将这些文字公开,毕竟勇敢开始本身就足够可贵

其实还有很多踩过的坑现在才弄懂,后续会开一个专栏,专门讨论在这期间学到的许多知识。

感谢观看!结束!

搭建个人博客—第一章:准备工作 2026-01-03
写在前面:关于输入与输出 2026-01-08