在完成云服务器的环境搭建之后,尝试将Halo博客安装到云服务器中,并且作为服务运行。这样我们通过ip:8090(对应端口号)就能够访问自己的博客了。
一、Docker安装
通过宝塔面板一键安装:
软件商店 --> Docker管理器3.6 --> 安装
点击之后能够看到任务列表中的安装状态,等待完成安装即可。
二、Halo安装
1. 创建工作目录
mkdir ~/.halo && cd ~/.halo
2. 下载配置文件到~/.halo目录
- ssh终端运行以下命令:
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
3. 配置文件说明
- 使用Vim工具修改配置文件
vim ~/.halo/application.yaml
- 如果需要自定义端口,修改 server 节点下的 port 即可
- Halo默认使用自带的H2 DataBase作为数据库。这是一种轻量级的嵌入式数据库,方便使用。注意初始用户:admin,密码:123456
- 如果需要使用MySQL数据库,需要将H2 DabaBase相关内容注释掉。将MySQL相关注释加入并且自己配置。在使用MySQL之前需要先在其中创建名为halodb的数据库,进入mysql命令行后,创建命令如下:
create database halodb character set utf8mb4 collate utf8mb4_bin;
- 具体的配置文件可以在 https://dl.halo.run/config/ 中找到,以下是两种数据库的模板
# 使用H2 DataBase
server:
port: 8090
# Response data gzip.
compression:
enabled: false
spring:
datasource:
# H2 database configuration.
driver-class-name: org.h2.Driver
url: jdbc:h2:file:~/.halo/db/halo
username: admin
password: 123456
# H2 database console configuration.
h2:
console:
settings:
web-allow-others: false
path: /h2-console
enabled: false
halo:
# Your admin client path is https://your-domain/{admin-path}
admin-path: admin
# memory or level
cache: memory
# 使用MySQL数据库
server:
port: 8090
# Response data gzip.
compression:
enabled: false
spring:
datasource:
# MySQL database configuration.
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
password: 123456
halo:
# Your admin client path is https://your-domain/{admin-path}
admin-path: admin
# memory or level
cache: memory
4. 拉取Halo镜像
docker pull halohub/halo
5. 创建容器
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=always halohub/halo
- -it: 开启输入功能并连接伪终端
- -d: 后台运行容器
- –name: 为容器指定一个名称
- -p: 端口映射,格式为 主机(宿主)端口:容器端口 ,可在 application.yaml 配置。
- -v: 工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。
- –restart: 建议设置为 always,在 Docker 启动的时候自动启动 Halo 容器。
6、进入安装界面
打开 http://ip:端口号 即可看到安装引导界面
- 注:
如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 http://ip:端口号 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。
三、Nginx反向代理
1. 查看Nginx配置文件位置
- 首先需要查看安装路径
whereis nginx
- 然后进入nginx目录下的sbin文件夹,这个文件夹中都是可执行命令
cd /usr/local/nginx/sbin
- 接下来通过nginx命令查看配置文件的路径,需要在sbin文件下输入以下命令
nginx -t
2.使用vim命令更改配置文件
vim /www/server/nginx/conf/nginx.conf
配置文件中需要加入以下代码:
upstream halo {
server 127.0.0.1:8090;
}
server {
listen 80;
listen [::]:80;
server_name www.yourdomain.com;
client_max_body_size 1024m;
location / {
proxy_pass http://halo;
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;
}
}