Halo博客部署|Docker+Centos+Halo-Joe2.0搭配宝塔面板搭建视频教程

本文章向大家介绍超简单Centos+Docker+Halo搭建java向博客,主要包括超简单Centos+Docker+Halo搭建java向博客使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下

一、安装宝塔面板

这里使用的服务器系统版本为 CentOS 7.3

1、Centos安装命令:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

2、Ubuntu/Deepin安装命令:

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

二、安装Docker环境

在宝塔面板的软件商店中直接安装更方便(进入宝塔面包-软件商店-运行环境-安装Niginx及docker管理器)

Ubuntu Docker 使用官方安装脚本自动安装:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

CentOS Docker 安装脚本自动安装:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

三、使用 Docker 部署 Halo

1、先升级服务器的yum:

yum update

2、创建工作目录

mkdir ~/.halo && cd ~/.halo

3、下载示例配置文件到工作目录

wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml

4、编辑配置文件,配置数据库或者端口等,可以不用编辑,使用默认的配置参数

vim application.yaml

5、拉取最新的 Halo 镜像

docker pull halohub/halo:1.4.17

6、创建docker容器

docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.4.17

7、打开http://ip:端口号即可进入安装引导页面

四、Nginx反向代理

进入宝塔面板-添加站点-设置-配置文件;在54行加入以下代码

 
  # 以下代码加入到64行
  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/;
    }
} 

修改配置文件

在根节点添加:

upstream halo {    
    server 127.0.0.1:8090;
}
其中的 8090 为 Halo 的运行端口,请按需修改。

在 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;
}

修改 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; 
}

完整配置文件示例(仅包含关键部分):

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 的初始化,如果我们有服务器是有安全组的,需要设置8090端口放行。包括宝塔面板的安全组端口8090端口也要放行的。

五、设置 SSL证书

  • 可选择 宝塔 SSL 或者 Let's Encrypt 进行证书申请。
  • 需要开启右上角的 强制 HTTPS。# Docker环境部署Halo博客