Halo博客系统是使用Spring Boot开发的,部署起来十分方便。服务器最低环境配置只需要Java环境就可以跑起来,但是最好是使用Nginx做反向代理。下面我将介绍两种方法来部署好Halo。

宝塔面板部署方案

安装宝塔面板

Centos安装命令:

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

Ubuntu/Deepin安装命令:

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

Debian安装命令:

wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && bash install.sh

Fedora安装命令:

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

理论上只需要按照系统执行对应的命令就行了,具体安装方法请到宝塔面板官网

配置Java环境

因为是使用Java开发的,所以必须配置好Java环境(废话),至于Java环境的配置,大家百度上搜一下即可,我这里就不在赘述,open JDK或者Oracle JDK都可以。

安装Nginx

首先需要登录到宝塔面板后台,然后选择软件管理,然后找到Nginx,选择安装就可以了。

新建网站

输入好域名,和网站根目录就行了,其他的不需要管,然后点击提交。

上传Halo

选择宝塔面板的文件管理,然后定位到刚刚创建网站的根目录,如我的是/www/wwwroot/blog。然后把Halo的压缩包上传上去,如下图:

运行Halo

首先我们需要使用ssh连接到服务器,不会使用的可以百度查一查。

  1. 我们定位到刚刚我们创建网站的根目录,如我的是/www/wwwroot/blog
  2. 然后使用unzip命令解压halo.zip压缩包,如unzip halo.zip
  3. 解压完成之后,我们需要修改一下resources目录下的application.yaml文件,具体需要修改的地方请参照Halo使用文档(https://halo-doc.ryanc.cc)
  4. 保存application.yaml文件之后,返回到根目录,执行sh halo.sh start完成启动。
  5. 测试是否启动成功,浏览器输入ip:8090测试,如果没有开放8090端口,请先打开8090端口,application.yaml里面设置的默认的端口号是8090,你也可以改成其他的,不影响后面的操作。

Nginx反向代理

运行完成之后,如果不是使用的80端口启动的话是无法进行域名绑定的。当然你在运行之前可以把端口修改成80,然后就不需要使用Nginx进行反向代理了,但是我推荐使用Nginx反向代理。

  1. 首先选择宝塔面板的网站设置,然后选择你刚刚创建的网站,点击设置。
  2. 选择反向代理,在目标URL输入你的ip:8090,然后勾选下方的启动反向代理就可以了。
  3. 选择配置文件,需要注释掉一行配置,include /www/server/panel/vhost/rewrite/xxx.conf;,不注释这项配置的话,有可能进入不了后台。
  4. 在DNS服务商解析ip就完成了Halo的部署。

参考配置:

server
{
    listen 80;
    # 网站地址
    server_name www.domain.com;
    index index.php index.html index.htm default.php default.htm default.html;
    root 网站目录;
	
    #代理设置
    location / 
    {
        proxy_pass http://ip:8090;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Port $server_port;
    }
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
}

又拍云部署方案

使用又拍云比使用Nginx部署更方便,推荐使用这种方法,而且还可以加快网站访问速度。使用这种方式部署不需要再安装Nginx了,只需要配置好Java环境就行了,运行Halo和上面的方法一样,这里就不再赘述了。

注册又拍云

注册就不用我多说了吧,但是需要注意的是,使用又拍云需要实名认证和网站备案。

配置CDN

进入到又拍云后台之后,选择上方的云产品/CDN,然后创建服务,配置如下图:

需要注意的是,线路配置的端口号要设置为Halo运行的端口号,然后创建就可以了。

域名绑定

CDN创建完成之后会给出一个CNAME地址,我们只需要去DNS服务商绑定好这个CNAME就可以了,然后回到又拍云进行域名绑定,如下图:

之后又拍云会进行审核,审核完成之后就可以使用域名访问了。

其他配置

最重要的一项配置就是性能优化下面的重定向跟随,一定要打开,不然Halo后台可能会进不去。其他的诸如https之类的配置,大家按需求进行配置即可。