Docker 部署Halo
1.创建工作目录
mkdir ~/.halo && cd ~/.halo
2.下载示例配置文件到工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
3.编辑配置文件
vim application.yaml
默认的是h2
数据库, 我使用的是mysql
将h2
配置注释了
server:
port: 8090
# Response data gzip.
compression:
enabled: true
spring:
datasource:
# MySQL database configuration.
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://公网ip:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: xxx
password: xxx
halo:
# Your admin client path is https://your-domain/{admin-path}
admin-path: admin
# memory or level or redis
cache: memory
4.添加halodb数据库
5.防火墙规则
5.拉取最新Halo镜像
docker pull halohub/halo:1.5.2
6.启动容器
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.5.2
7.安装配置
配置主题
官网主题仓库
https://halo.run/themes.html
启用主题
8.nginx代理域名
等了两星期,域名终于下来了,现在使用nginx代理访问
配置文件http
层下添加
server {
listen 80;
server_name www.smallmayi.com;
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/;
}
}
保存配置,重启nginx
,可以直接访问你的博客了
9.配置ssl
SSL(Secure Sockets Layer 安全套接字协议),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密。
https
=http
+ssl
下载ssl
证书
在nginx
目录下创建cert
目录,存放证书解压的pem
和key
配置nginx
server {
listen 80;
server_name www.smallmayi.cn;
# 上传文件大小的限制
client_max_body_size 1024m;
# 将所有http请求通过rewrite重定向到https。
rewrite ^(.*)$ https://$host$1 permanent;
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/;
}
}
## 配置的ssl
server {
listen 443 ssl;
# 将demo.uanin.com改为您自己的域名
server_name www.samllmayi.cn;
# 上传文件大小的限制
client_max_body_size 1024m;
# 将证书文件存放路径和证书的密钥文件名替换成自己存放路径与证书的密钥文件名。
ssl_certificate /www/server/nginx/cert/smallmayi.cn_bundle.pem;
ssl_certificate_key /www/server/nginx/cert/smallmayi.cn.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_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;
# 下面8090是您配置Halo的端口号
proxy_pass http://127.0.0.1:8090/;
}
}
配置成功,前面出现锁标识,不行的话把docker
和容器重启一下。