本文手把手教你如何用服务器优雅地搭建一个博客
🏆如果对搭建个人博客仍存在细节上的问题可参考该视频:如何用服务器优雅地搭建一个博客—Hello,Halo!
1. 购买云服务器
1.1 前言
买云服务器之前,千万不要只看价格,千万不要看哪个便宜,哪个优惠多,你就买哪个,你得结合你自己的需求。
如果你云买服务器的目的,只是为了学习 Linux,或者搭个博客网站,自己玩玩,不要求访问量,那你买个最低配的服务器完全够用了。
假如你买云服务器的目的,是为了开发网站赚钱,希望访问量越大越好,那还是建议你买配置稍高的云服务器。
因为假如你贪便宜,买了一台不能满足你需求的服务器,等到你想扩容的时候,会发现扩容的成本,远比你重新注册个新会员,享受优惠活动,再买一台高配的云服务器的成本,高得多得多。但如果你买了新的服务器,你之前买的低配的服务器,不就浪费了?
所以,买之前,首先一定要搞清楚自己买服务器的用途!
1.2 国外云服务器 vs 国内云服务器
🎯国外服务器优势:
- 免备案
- 无监管
- 自由度高
- 性价比高
🎯国内服务器优势:
- 比较复合国人的使用习惯
- 稳定性更好
- 客服及工单系统响应迅速
- 优惠活动也不少
- 提供域名及备案服务(其实国内也有免备案服务器)
1.3 个人推荐
国内有例如阿里云、腾讯云和华为云等,这里推荐阿里云服务器(我个人也在用):
☁感兴趣的可以看一下这几者之间的测评对比:阿里云、腾讯云、百度云、华为云评测对比
但是我墙裂推荐 UCloud,如下我搭建个人网站所用的服务器就是 UCloud 上购买的:
1.4 云服务器购买步骤(优惠)
阿里云服务器 和 UCloud 的云主机 UHost 我都有购买,这里详解下 UCloud 云服务器的购买过程!
1.4.1 找到活动专区的 11.11 狂欢
1.4.2 选择 香港
地区的云服务器
个人觉得 1核2G 配置的云服务器对于我而言完全足够了,毕竟只是搭建个人博客网站。
⭐推荐中国香港地区的云服务器,免备案真的省去挺多时间的。
1.4.3 确认下购买的配置
🔥镜像:CentOS 7.2 64位
🔥带宽:1M
之前选了 CentOS 8.3 64位 然后后面出现了 Docker 配置失败的问题,所以这里建议跟着我的配置走!
对了,这里演示的是 1 年的云服务器价格,因为我 1 个月的买过了,已达购买数量上限。
若刚刚配置错镜像版本的可以参照如下操作方式进行恢复:
记住!系统盘大小调成 40 G,不然 UCloud 会让你补差价:
1.4.4 成了✔
2. 购买域名
上 NameSilo 购买域名即可:
2.1 搜索域名
在搜索栏里检索你所要购买的域名,可能被人购买走了:
2.2 选择域名
这里 wu-yikun.top
这个域名被我买走了,所以检索的时候会显示 Try To Buy
,表示向这个域名持有者购买该域名!
注意这里的单位是美元**$**,域名真的是一撮人的财富密码,甚至是小国的财富 。
2.3 购买域名
Add 后直接 Checkout,然后再 Checkout,别购买增值服务..
付款后即可拥有该域名啦!
2.4 配置域名映射,等待域名解析
购买域名后并不代表着会自动映射到你所购买的云服务器主机 IP 上,还需要进行域名映射配置(即:域名解析)!
选择 domain manager 域名管理:
管理这个域的 DNS(Manage DNS for this domain):
然后如下图配置域名映射,配置成功后等待域名解析即可。
一般服务商都是给予 24 小时之内生效的承诺,但往往都是一两个小时内就可以生效。
该网站购买的域名解析起来大致要 30 分钟,算是比较快的了。
如果公司有内部 DNS 服务器的话,可能要等其缓存的更新,可能需要 48 小时。
一般通用顶级域名解析是 2 小时内生效,国家顶级域名解析 24 小时内生效。因为域名解析需要同步到 DNS 根服务器,而 DNS 根服务器会不定时刷新,只有 DNS 根服务器刷新后域名才能正常访问。
新增解析一般会在 10 分钟左右生效,最长不会超过 24 小时,修改解析时间会稍微延长。
🌹 域名解析生效的过程,就是域名与 IP 绑定的过程!
🌹补充下该知识点 (资源记录):
图片来源:《计算机网络—自顶向下方法》
2.5 域名解析生效
ping
自己购买的域名地址,若出现下列结果即可说明域名解析成功!
🌹 注:请求超时并不影响!只要出现域名后跟随 IP 地址即可!
如下:
正在 Ping www.wu-yikun.top [xx.xx.xx.xx] 具有 32 字节的数据
1 | C:\Users\57715>ping www.wu-yikun.top |
到这里域名相关配置的操作就结束啦!
3. 宝塔 Linux 面板配置
宝塔面板能做什么:
- 一键配置服务器环境(LAMP/LNMP)
- LNMP: Linux + Nginx + MySQL + PHP
- LAMP: Linux + Apache + MySQL + PHP
- 一键安全重启
- 一键创建管理网站、ftp、数据库
- 一键部署 SSL 证书
- 一键部署源码(discuz、wordpress、dedecms、z-blog、微擎等等)
- 一键配置(定期备份、数据导入、伪静态、301、SSL、子目录、反向代理、切换 PHP 版本)
- 一键安装常用 PHP 扩展(fileinfo、intl、opcache、imap、memcache、apc、redis、ioncube、imagick)
- 数据库一键导入导出
- 系统监控(CPU、内存、磁盘 IO、网络 IO)
- 防火墙端口放行
- SSH 开启与关闭及 SSH 端口更改
- 禁 PING 开启或关闭
- 方便高效的文件管理器(上传、下载、压缩、解压、查看、编辑等等)
- 计划任务(定期备份、日志切割、shell 脚本)
- 软件管理(一键安装、卸载、版本切换)
简单来说 ❗ ❗ ❗
大型网站程序都安装在服务器上,服务器用的是 Linux 系统,进行服务器维护需要记住很多 Linux 的命令,这就很麻烦。
面板的好处,就是通过一个交互界面就能完成服务器的维护工作,比如:更新系统,添加网站,修改设置等等。以前需要记住各种命令,现在通过面板点点按钮就可以了,省时省力。
3.1 Xshell 远程连接服务器
首先登录 Xshell 远程连接刚刚购买的 UCloud 云服务器:
然后执行如下命令在云服务器上 (CentOS) 安装宝塔 Linux 面板:
💖其他 Linux 发行版的安装指令详见:宝塔 Linux 面板安装教程(官网教程)
1 | yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh |
安装完之后会跳出宝塔面板的默认信息,然后访问外网面板地址即可跳转到 BT-Panel,输入刚刚提供的 username
和 password
即可登录。
⭐若以后忘记 BT 宝塔面板的用户名、密码和入口等基本信息,则执行如下命令即可搞定:
1 | [root@xxx ~]# /etc/init.d/bt default |
3.2 通过 BT 面板添加站点
刚登陆宝塔面板时安装套件:选择 LNMP(推荐),并勾选极速安装:
如下:宝塔面板主界面
接下来添加站点:
3.3 添加 SSL 证书
🍻注意:添加 SSL 证书的前提就是域名解析生效!所以在此之前请耐心等待吧。
添加成功后,点击开启强制HTTPS。
⭐强制 HTTPS 之后访问
wu-yikun.top
的地址都会被默认转换为https://wu-yikun.top
!
⭐当然也可以直接访问https://wu-yikun.top
!但是直接访问http://wu-yikun.top
会无法访问!若不开启也可,不过访问 http://wu-yikun.top 会显示不安全!
3.4 配置反向代理
记得注释其余 location
的相关配置:
⭐⭐⭐**反向代理配置将网站的默认访问端口 80 交由 8090 端口代理,所以之后访问 wu-yikun.top
地址就会被默认映射到 https://wu-yikun.top:8090
而不是 https://wu-yikun.top:80
**!
1 | location / { |
3.5 开启防火墙:放行指定端口
安全组放行教程 ,如需完整使用宝塔的所有功能,还需要放行如下端口
- 443 端口:HTTPS
- 888 端口:phpMyAdmin 默认端口
- ⭐39000-40000 端口:Linux 系统
- 20 端口:FTP 主动模式数据端口
- 22 端口:SSH 远程服务
- 21 端口:FTP 协议默认端口
- ⭐8888 端口:宝塔 Linux 面板默认端口
- 80 端口:网站默认端口
- ⭐8090 端口:反向代理指定的网站端口
💖此处解释下为什么要放行 8090 端口:
🧠除了 8090 端口,其余都是原本就一定要放行的一些端口,而放行 8090 端口仅仅是因为我们设置的反向代理用 8090 端口代理了 80 端口(默认网站端口),所以访问我域名 wu-yikun.top
会自动导向 wu-yikun.top:8090
(但 URL 不会显示 8090 端口),所以需要放行该端口!
4. 在 CentOS 上安装 Docker Engine
⭐官网教程:Install Docker Engine on CentOS
⭐英文官网,若看不懂的小伙伴还是建议按顺序执行如下命令吧。
4.1 卸载 Docker 的旧版本(选)
若严格按照本文的顺序进行搭建或从未下载过 Docker 的话则无需执行如下卸载命令,否则还是执行一下为好。
1 | sudo yum remove docker \ |
4.2 安装 yum-utils 包
🍺依次执行如下两条命令:
1 | sudo yum install -y yum-utils |
4.3 安装 Docker 引擎
1 | sudo yum install docker-ce docker-ce-cli containerd.io |
安装 Docker 就是为下文安装 Halo 做准备!
5. 使用 Docker 部署 Halo
官网教程:Halo Documents
⭐在 Xshell 上依次执行如下命令:
5.1 创建工作目录
1 | mkdir ~/.halo && cd ~/.halo |
5.2 下载示例配置文件到工作目录
1 | wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml |
5.3 拉取最新的 Halo 镜像
1 | docker pull halohub/halo:1.4.15 |
5.4 创建容器
1 | docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.4.15 |
- -it: 开启输入功能并连接伪终端
- -d: 后台运行容器
- –name: 为容器指定一个名称
- -p: 端口映射,格式为
主机(宿主)端口:容器端口
,可在application.yaml
配置。 - -v: 工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。
- –restart: 建议设置为
unless-stopped
,在 Docker 启动的时候自动启动 Halo 容器。
5.5 访问个人网站(见证奇迹的时刻)
🏆打开 https://ip:端口号
即可看到安装引导界面;我这里访问 https://wu-yikun.top
即可!
💡Tip:如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 http://ip:端口号
的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组(即放行端口)。
🌹 前台地址:https://wu-yikun.top
🌹后台地址:https://wu-yikun.top/admin
⭐有关 Halo 的更多主题:https://halo.run/themes.html