【记录】博客翻新
不知不觉博客似乎挂了5年有余,原先的腾讯轻量云续费属实太贵,最近观腾讯云有活动,且之前的博客用了`halo`无法快速升级(需要升级JDK和不兼容旧的数据库)耽搁了。固重新租了一个5年的服务器,再叙5年青春。
操作记录存档
环境: TencentOS Server 4 for x86_64
安装一些必要的依赖
dnf install java-17-konajdk
dnf install git
dnf install nginx
dnf install mysql mysql-server
下载最新版本的halo
wget https://dl.halo.run/release/halo-2.20.12.jar -O halo.jar
创建halo配置application.yaml指定mysql
server:
# 运行端口
port: 8090
spring:
# 数据库配置,支持 MySQL、MariaDB、PostgreSQL、H2 Database,具体配置方式可以参考下面的数据库配置
r2dbc:
url: r2dbc:pool:mysql://localhost/halo2
username:
password:
sql:
init:
mode: always
# 需要配合 r2dbc 的配置进行改动
platform: mysql
halo:
# 工作目录位置
work-dir: ${user.home}/.halo2
# 外部访问地址
external-url: http://localhost:8090
# 附件映射配置,通常用于迁移场景
attachment:
resource-mappings:
- pathPattern: /upload/**
locations:
- migrate-from-1.x
配置自定义halo.service 并挂载到系统当中
[Unit]
Description=Halo Service
Documentation=https://docs.halo.run
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
ExecStart=/usr/bin/java -Dfile.encoding=UTF-8 -server -Xms256m -Xmx256m -jar /root/services/halo/halo.jar --spring.config.additional-location=optional:file:/root/.halo2/config/application.yaml
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog
StandError=inherit
[Install]
WantedBy=multi-user.target
安装并使用acme.sh获得ssl证书
git clone https://gitee.com/neilpang/acme.sh.git
cd acme.sh
./acme.sh --install -m my@example.com
acme.sh --register-account --server zerossl \
--eab-kid zerossl配置 \
--eab-hmac-key zerossl配置
export DP_Id="腾讯云配置"
export DP_Key="腾讯云配置"
编辑nginx配置
upstream halo {
server localhost:8090;
keepalive 2000;
}
server {
listen 80;
server_name blog.metoo.ink i.metoo.ink;
rewrite ^/(.*)$ https://blog.metoo.ink/$1 permanent;
}
server {
listen 443 ssl;
charset UTF-8;
server_name blog.metoo.ink;
client_max_body_size 200M;
ssl_certificate /root/.cert/*.metoo.ink/cert.pem;
ssl_certificate_key /root/.cert/*.metoo.ink/key.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://halo;
proxy_set_header Host $proxy_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
fastcgi_param REDIRECT_STATUS 200;
}
}
使用acme.sh定时更新
acme.sh --install-cert -d *.metoo.ink --ecc \
--key-file /root/.cert/*.metoo.ink/key.key \
--fullchain-file /root/.cert/*.metoo.ink/cert.pem \
--reloadcmd "systemctl reload nginx"
最后域名切换
完
评论
其他文章