Halo博客折腾
*** 一直想搞个个人博客的发布网站但是自己先有点不现实(我想要的系统太大了),然后突然发现Halo满足了我的大部分需求(主题样式多,相册,日志,文章等)所以就部署了一个Halo,然后因为友链是个人博客引流的一大渠道发现大部分友链要求Https所以写了这么一篇文章记录了Halo从部署到配置Https的全年过程(其实七牛云也可以使用http然后nginx转发,对于访问量小的博客没有问题,后来实在折腾不下去了就点了个七牛云帮我部署https) ***
安装 Halo官网原文
创建工作目录并进入
mkdir ~/.halo && cd ~/.halo
下载配置文件
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
如需配置数据库或者端口参考Halo配置
vim application.yaml #没有这方面需要的可以忽略此步骤
拉取Halo最新镜像
docker pull halohub/halo:1.5.2
创建8090端口容器并设置自启
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.5.2
现在http://ip:端口号 即可访问
使用Nginx反向代理并使用certbot自动申请安装SSL证书参考地址
安装Nginx
# 下列代码适用于CentOS
# 添加 Nginx 源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# 安装 Nginx
sudo yum install -y nginx
# 启动 Nginx
sudo systemctl start nginx.service
# 设置开机自启 Nginx
sudo systemctl enable nginx.service
# 下列代码适用于Ubuntu
sudo update sudo apt install nginx
# 下载Halo官方的Nginx配置模板
curl -o /etc/nginx/conf.d/halo.conf --create-dirs https://dl.halo.run/config/nginx.conf
#修改配置
vim /etc/nginx/conf.d/halo.conf
配置内容如下修改
server {
listen 80;
server_name example.com www.example.com; # 将域名修改为自己的域名
location / {
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_pass http://127.0.0.1:8090/; # 这里是你本地Halo的位置Halo可能会在头部定义然后这里写成http://halo 如果是的话注意前几行的定义即可
}
}
修改完成后
# 检查配置是否有误
sudo nginx -t
# 重载 Nginx 配置
sudo nginx -s reload
# 使用 certbot 申请并自动安装SSL证书
# CentOS 安装 certbot 以及 certbot nginx 插件
sudo yum install certbot python3-certbot-nginx -y
# Ubuntu 安装 certbot 以及 certbot nginx 插件
sudo apt install certbot
sudo apt install python3-certbot-nginx
######### python3-certbot-nginx 可能会安装失败 安装 python2-certbot-nginx
#yum install certbot python2-certbot-nginx
# 申请自动配置
sudo certbot --nginx
# 然后输入邮箱并 按y或a同意相关协议 其余根据命令输出随机应变即可
# 自动续期
sudo certbot renew --dry-run
至于七牛云如果是http建议用他们的DV证书官方有自动配置一键即可
Q.E.D.