halo博客搭建

前言:感谢halo官方,感谢那些有关halo博客搭建相关的文章,谢谢分享!

服务器环境:ubuntu 1804

一、安装java环境

更新软件包

#确保服务器的软件包是最新的

apt-get update -y

安装java环境

#安装openJRE

apt-get install openjdk-8-jre

#验证JRE是否安装成功

java -version

二、下载及修改配置文件

#配置文件内容解释

server:
  port: 8090  #port后面可以自定义端口
# Gzip的功能设置,如果采用了nginx反向代理,默认开启了gzip,所以这里可以保持默认
  compression:
    enabled: false
spring:
  datasource:
# H2 数据库配置
    driver-class-name: org.h2.Driver
    url: jdbc:h2:file:~/.halo/db/halo
    username: ********  #修改数据库用户名
    password: ********  #修改数据库密码

# H2数据库控制台配置
  h2:
    console:
      settings:
        web-allow-others: false
      path: /h2-console
      enabled: false

halo:
#后台管理的根路径,默认为admin
  admin-path: admin
# 系统缓存形式配置,可选memory或者level,默认memory,将数据缓存到内存,使用该方式的话,重启应用会导致缓存清空。如果选择level,则会将数据缓存到磁盘,重启不会清空缓存,如果不知道如何选择,建议默认
  cache: memory

三、测试halo

halo

Halo的整个额外文件全部存放在~/.halo目录下。一定要保证~/.halo目录的存在,博客的所有资料都在其中。

Halo安装包(halo的整个应用程序是一个jar包,且不包含用户的任何配置)放在任何目录都是可行的,无需担心该安装包的安危,因为它仅仅是个服务而已

 

下载halo安装包

#下载最新的halo-latest.jar

wget http://halo.ryanc.cc/release/halo-latest.jar -O halo-latest.jar

测试halo

#启动测试

Java -jar halo-latest.jar

看到halo has started successfully!说明配置正确。

开机自启halo

以上测试完成后,如果关闭SSH连接,那么halo也将被关闭,如果想要服务器常年开机自启halo,那么需要借助linux系统的systemd程序来完成该项任务

#下载halo官方制定好的halo.service模板

curl -o /etc/systemd/system/halo.service --create-dirs http://halo.ryanc.cc/config/halo.service

#修改halo.service

[Unit]
Description=Halo Service
Documentation=https://halo.run
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar YOUR_JAR_PATH
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog

StandError=inherit

[Install]
WantedBy=multi-user.target

主要修改的地方就是YOUR_JAR_PATH,这里填写halo-latest.jar的绝对路径

#修改完halo.service文件之后,需要刷新systemd

Systemctl daemon-reload

#halo开机自启

Systemctl enable halo.service

#halo运行状态

service halo status

IP+端口测试访问

 

四、域名访问

前提:

确保域名已经成功解析到服务器IP,并确认服务器是否需要备案

检查服务器上的80、443、8090端口是否开放

域名解析

比如我的域名:www.epiol.top

我们ping完该域名后,返回的IP地址是我的服务器IP地址,那么域名解析就完成了

开放端口

在阿里云实例列表-更多-网络和安全组-安全组设置-配置防火墙规则,在入方向更改规则,允许任何IP访问服务器的80、443、8090端口

安装nginx

#安装nginx

apt-get install nginx -y

访问http://服务器IP地址,出现nginx页面则表示正常

配置nginx域名访问

#修改nginx虚拟主机配置文件

cd /etc/nginx/sites-available/default

修改内容:

server {
        listen 80 ;
        root /var/www/html;
        index index.html index.htm index.nginx-debian.html;
        server_name 域名;
      
}

#检查配置是否错误

nginx -t

#重载nginx配置

nginx -s reload

访问http://域名,出现nginx页面则表示正常

五、配置SSL证书

#去阿里云申请好证书后,上传至服务器

scp .pem文件绝对路径 root@服务器IP:/root
scp .key文件绝对路径 root@服务器IP:/root

#将证书放入你想放的目录中

mv .pem文件 /etc/ssl/certs/.pem文件
mv .key文件 /etc/ssl/private/.key文件

#修改虚拟主机配置文件

server {
        listen 443 ssl;
        root /var/www/html;
        index index.html index.htm index.nginx-debian.html;
        server_name 域名;
        ssl_certificate /etc/ssl/certs/.pem文件;
        ssl_certificate_key /etc/ssl/private/.key文件;
}

#重复检查配置是否错误和重载nginx配置

访问https://域名,出现nginx页面则正确

六、nginx反向代理

#修改虚拟主机配置文件

server {
        listen 80 ;
        root /var/www/html;
        index index.html index.htm index.nginx-debian.html;
        server_name 域名;

        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/;   
}
        rewrite ^(.*) https://$host$1 permanent;  //重定向到https


}
server {
        listen 443 ssl;
        root /var/www/html;
        index index.html index.htm index.nginx-debian.html;
        server_name 域名;
        ssl_certificate /etc/ssl/certs/.pem文件;
        ssl_certificate_key /etc/ssl/private/.key文件;

        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端口
}
}

访问域名,直接到达halo博客初始化页面,至此halo的搭建全部完成了!

我的博客,欢迎访问!

 

你可能感兴趣的:(halo博客系统)