Halo ,一个优秀的开源博客发布应用。
Halo官方文档给出了2种安装方法,个人更推荐Docker部署
对于小白来说宝塔是一个很好的服务器面板,它可以帮助你省下很多麻烦
本文章并非零基础教程,如果你对服务器购买以及域名解析有疑问,可以看看halo 博客从零部署指南,在步骤“配置halo博客服务”后,再看此教程。
首先ssh工具链接服务器 废话
第一步安装宝塔面板这里就废话了
第二步安装Docker应该都有吧
开始部署halo
创建工作目录
mkdir ~/.halo && cd ~/.halo
下载示例配置文件到工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
编辑配置文件,配置数据库或者端口等,如需配置请参考参考配置
vim application.yaml
拉取最新的 Halo 镜像
docker pull halohub/halo:latest
创建容器
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:latest
代码释义
-it: 开启输入功能并连接伪终端
-d: 后台运行容器
--name: 为容器指定一个名称
-p: 端口映射,格式为 主机(宿主)端口:容器端口 ,可在 application.yaml 配置。
-v: 工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。
--restart: 建议设置为 unless-stopped,在 Docker 启动的时候自动启动
Halo 容器。
打开 http://ip:端口号 即可看到安装引导界面(需要用域名的不要做!!!)。
在官方文档中,这一步下有如下 TIP ,即如果你需要使用域名以及 反向代理,请不要进行这个步骤。而且因为你正在使用宝塔面板,默认情况下不会开放这个端口的,你也访问不了这个网址。如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 http://ip:端口号 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。
宝塔面板所需软件包下载
需要在宝塔面板的软件商店安装的软件包有:Nginx
添加站点并配置 Nginx
点击左侧的 网站 菜单项,点击 添加站点 按钮。
需要填写的表单信息如下:
域名:填写您已经解析到当前服务器公网 IP 的域名。
PHP版本:纯静态。
FTP 和 数据库均不创建,因为 Halo 自带了一个 H2 数据库,除非你想用其他数据库,如 MySQL 代替。不推荐代替,因为当你备份博客时,如果你使用其他数据库,需要自己备份数据库部分。
根目录保持原样即可。
填写完成之后点击 提交 按钮即可。
设置 SSL
在配置反向代理之前,我们推荐先设置好 SSL 证书。
点击左侧的 网站 菜单项,点击 你添加站点时填写的网站名。
点击左侧的 SSL 菜单项。
可选择 宝塔 SSL 或者 Let's Encrypt 进行证书申请。
需要开启右上角的 强制 HTTPS
修改配置文件
注意:不要修改教程中未提及部分。
“完整配置文件示例”中有省略号,省略的就是未提及部分,请不要直接复制然后替换配置文件。
配置文件位置
在根节点添加
upstream halo {
server 127.0.0.1:8090;
}
其中的 8090 为 Halo 的运行端口,请按需修改。
如图
修改 server 节点中的 location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ 节点:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
proxy_pass http://halo;
expires 30d;
error_log /dev/null;
access_log off;
}
修改 server 节点中的 location ~ .*.(js|css)?$ 节点:
location ~ .*\.(js|css)?$
{
proxy_pass http://halo;
expires 12h;
error_log /dev/null;
access_log off;
}
在 server 节点添加:
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;
}
完整配置文件示例(仅包含关键部分)请勿直接复制粘贴:
upstream halo {
server 127.0.0.1:8090;
}
server
{
...
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
proxy_pass http://halo;
expires 30d;
error_log /dev/null;
access_log off;
}
location ~ .*\.(js|css)?$
{
proxy_pass http://halo;
expires 12h;
error_log /dev/null;
access_log off;
}
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;
}
...
}
完整示例图如下
随后点击保存即可。如果配置不生效,请重载 Nginx 或者 重启 Nginx。
最后,访问域名即可进行 Halo 的初始化。
后台地址
你的域名/admin
欢迎大家访问我的小破站https://jddgz.top/
感谢分享,内容不错,学习了!!有空弄一个
继续加油哦,争取发表更多优秀帖子
又学习到了,写的非常好?
感谢分享,谢谢楼主,赞
宝塔用着还是很舒服的,功能强大操作简单!
谢谢分享,学习了
感谢分享,谢谢楼主,赞
打卡升级
瞅瞅瞅瞅,mark一手
辛苦了,学习一下
前来顶贴!
学习学习
继续加油哦,争取发表更多优秀帖子
先看看,不明白的地方再问
谢谢,分享学习了
前来顶贴!