从0配置halo博客并配置SSL

本文使用docker安装halo
系统环境为centos7.6
更好的阅读体验请查看:https://lidonglei.cn

docker安装

yum install docker
systemctl start docker

安装halo

  1. 创建工作目录
    mkdir ~/.halo && cd ~/.halo
  2. 下载示例配置文件到工作目录
    wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
  3. 编辑配置文件,配置数据库或者端口等,如需配置请参考参考配置
    vim application.yaml
  4. 拉取最新的 Halo 镜像
    docker pull halohub/halo:1.4.16
  5. 创建容器
    docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.4.16

安装Nginx

  1. 安装nginx
sudo yum install -y nginx
  1. 启动nginx
sudo systemctl start nginx.service

# 设置开机自启 Nginx
sudo systemctl enable nginx.service
  1. 配置nginx
# 下载 Halo 官方的 Nginx 配置模板
curl -o /etc/nginx/conf.d/halo.conf --create-dirs https://dl.halo.run/config/nginx.conf

# vim 编辑 halo.conf
vim /etc/nginx/conf.d/halo.conf

server {
    listen 80;

    server_name example.com www.example.com; # 将 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/; # 如有更改默认的宿主机8090端口,请修改此处为执行选择的端口
    }
}

# 检查配置是否有误
sudo nginx -t

# 重载 Nginx 配置
sudo nginx -s reload

配置SSL

  1. 登陆到服务器
  2. 安装certbot
    sudo yum install certbot
  3. 获取证书
    sudo certbot certonly --manual --preferred-challenges=dns
    输入邮箱:
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-apPWouZ3-1639710680617)(/upload/2021/12/image-2de6ec4801304741b8dd765005d0ae1a.png)]
    输入同意即可

    此时提示是否共享你的邮箱地址,我选择不共享:

    此时会让你输入你的域名,我的域名为 lidonglei.cn, 如果要申请泛域名证书,则输入
    lidonglei.cn *.lidonglei.cn,如果要申请单域名,则输入www.lidonglei.cn

    此时会出现一个提示,确认即可:

    此时提示部署一条DNS文本记录:

    在阿里云的域名解析中添加一条解析记录:

    回到控制台点击enter回车即可:

配置nginx配置文件

upstream halo {
  server 127.0.0.1:8090;
}
server {
  listen 80;
return 301 https://lidonglei.cn$request_uri;
listen [::]:80;
  server_name lidonglei.cn;
  client_max_body_size 1024m;
  location / {
    proxy_pass http://127.0.0.1:8090;
    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;
  }
}
server {
    listen 443 ssl;

    server_name lidonglei.cn;

    ssl_certificate /etc/letsencrypt/live/lidonglei.cn/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/lidonglei.cn/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8090/;
    }
}

References

Halo官方文档
Docker部署Halo博客并配置SSL证书
使用Certbot申请免费泛域名SSL证书
搭建Halo+Nginx反向代理+SSL证书配置踩的坑

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值