本文手把手教你如何用服务器优雅地搭建一个博客

🏆如果对搭建个人博客仍存在细节上的问题可参考该视频:如何用服务器优雅地搭建一个博客—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
2
3
4
5
C:\Users\57715>ping www.wu-yikun.top

正在 Ping www.wu-yikun.top [xx.xx.xx.xx] 具有 32 字节的数据:
请求超时。
...

到这里域名相关配置的操作就结束啦!

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,输入刚刚提供的 usernamepassword 即可登录。

⭐若以后忘记 BT 宝塔面板的用户名、密码和入口等基本信息,则执行如下命令即可搞定:

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@xxx ~]# /etc/init.d/bt default
==================================================================
BT-Panel default info!
==================================================================
外网面板地址: http://xxx/xxx
内网面板地址: http://xxx/xxx
*以下仅为初始默认账户密码,若无法登录请执行bt命令重置账户/密码登录
username: xxx
password: xxx
If you cannot access the panel,
release the following panel port [8888] in the security group
若无法访问面板,请检查防火墙/安全组是否有放行面板[8888]端口
==================================================================

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
2
3
4
5
6
7
8
9
10
11
location / {
proxy_pass http://127.0.0.1:8090/;
rewrite ^/(.*)$ /$1 break;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade-Insecure-Requests 1;
proxy_set_header X-Forwarded-Proto https;
}

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
2
3
4
5
6
7
8
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

4.2 安装 yum-utils 包

🍺依次执行如下两条命令:

1
2
3
4
5
sudo yum install -y yum-utils

sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

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


✍️ Yikun Wu 已发表了 69 篇文章 · 总计 293k 字,采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处

🌀 本站总访问量