前言
因为服务器被我重置了,需要重新安装一次halo;所以以下是在全新系统中进行操作
环境:
centos 7.9
连接工具:
xshell
步骤
1. 安装JRE
写这篇文章是,最新halo版本要求JRE版本为11,故我们安装JRE11
yum install java-11-openjdk -y
检查版本
java -version
无问题进行下一步
2. 安装halo
这里我没有新建用户,直接用的root用户
2.1 创建存储安装包目录
mkdir ~/app && cd ~/app
2.2 下载运行包
wget https://dl.halo.run/release/halo-1.4.3.jar -O halo.jar
2.3 创建工作目录
mkdir ~/.halo && cd ~/.halo
2.4 下载示例配置文件到工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
2.5 编辑配置文件
vim application.yaml
以下是我的配置
我用的mql远程数据库
server:
port: 8090
# Response data gzip.
compression:
enabled: false
spring:
datasource:
# H2 database configuration.
# driver-class-name: org.h2.Driver
# url: jdbc:h2:file:~/.halo/db/halo
# username: admin
# password: 123456
# MySQL database configuration.
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://rm.mysql.rds.aliyuncs.com/halo # 数据库地/数据库名
username: root # 数据库用户名
password: xxxx # 数据库密码
# H2 database console configuration.
# h2:
# console:
# settings:
# web-allow-others: false
# path: /h2-console
# enabled: false
halo:
# Your admin client path is https://your-domain/{admin-path}
admin-path: admin
# memory or level
cache: memory
2.6 运行halo
cd ~/app && java -jar halo.jar
成功日志
run.halo.app.listener.StartedListener : Halo started at http://127.0.0.1:8090
run.halo.app.listener.StartedListener : Halo admin started at http://127.0.0.1:8090/admin
run.halo.app.listener.StartedListener : Halo has started successfully!
然后打开 http://ip:端口号 即可开始进入安装引导界面,如果不能进入页面,检查服务器8090端口是否开放
3. 作为服务运行halo
3.1 下载halo官方service模板
wget https://dl.halo.run/config/halo.service -O /etc/systemd/system/halo.service
3.2 修改service模板
vim /etc/systemd/system/halo.service
以下为我的配置
Description=Halo Service
Documentation=https://docs.halo.run
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
# User=USER # 如果照我的步骤则删除该行
ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar /root/app/halo.jar # 到halo运行包路径
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog
StandError=inherit
[Install]
WantedBy=multi-user.target
验证 命令路径即ExecStart
/usr/bin/java -server -Xms256m -Xmx256m -jar /root/app/halo.jar
3.3 重新加载 systemd
systemctl daemon-reload
3.4 运行服务
systemctl start halo
3.5 在系统启动时启动服务
systemctl enable halo
[可选] 查看日志
journalctl -n 20 -u halo
4. 安装配置nginx
以下也配置了ssl证书
4.1 安装nginx
sudo yum -y install nginx
4.2 证书上传[可选]
- 下载rz
yum -y install lrzsz
- 到nginx配置目录
cd /etc/nginx
- 创建 ssl证书目录
mkdir ssl && cd ssl
- 选择证书文件上传
rz
4.3 配置nginx
- 编辑nginx
vim /etc/nginx/nginx.conf
- 修改配置项
以下是我的配置,仅供参考 lijiakai.cn 请换成自己的域名
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
client_max_body_size 1024m;
client_header_timeout 60;
client_body_timeout 60;
#lingering_timeout 20;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
upstream halo {
server 127.0.0.1:8090;
}
server {
#SSL 监听80和443
listen 80;
#自行替换
server_name lijiakai.cn;
if ($scheme != https) { return 301 https://lijiakai.cn$request_uri; }
}
server{
listen 443 ssl;
#填写绑定证书的域名
server_name lijiakai.cn;
#证书文件名称
ssl_certificate /etc/nginx/ssl/3722511_www.lijiakai.cn.pem; # 证书文件路径,此路径仅供参考,具体请您按照实际目录操作
#私钥文件名称
ssl_certificate_key /etc/nginx/ssl/3722511_www.lijiakai.cn.key; # 私钥文件路径,此路径仅供参考,具体请您按照实际目录操作
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location /{
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
proxy_pass http://halo;
#proxy_read_timeout 150;
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;
}
}
}
4.4 启动nginx
1.设置开机启动
sudo systemctl enable nginx
2.启动nginx
sudo service nginx start
以下是nginx 服务 命令
sudo systemctl enable nginx # 设置开机启动
sudo service nginx start # 启动 nginx 服务
sudo service nginx stop # 停止 nginx 服务
sudo service nginx restart # 重启 nginx 服务
sudo service nginx reload # 重新加载配置,一般是在修改过 nginx 配置文件时使用。
4.5 配置halo后台
进入 系统/博客设置/常规设置
将 博客地址改为 自己的网站 如:
https://lijiakai.cn
配置ssl证书的一定要为https,不然页面样式会丢失
结语
希望大家能配置成功
Q.E.D.