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.


远赴人间惊鸿宴,一睹人间盛世颜。