Docker部署halo容器并使用nginx代理
Docker安装
参照我另外一篇文章docker安装
获取halo镜像
docker pull halohub/halo:2.15
docker images # 显示 halohub/halo 2.15 0d3c7d1c2668 10 days ago 406MB 即可
创建启动halo的配置文件
mkdir /opt/docker-compose/halo/
vim /opt/docker-compose/halo/docker-compose.yaml
在配置文件中写入以下配置(官方推荐不使用默认H2数据库,笔者使用MySQL)
version: "3"
services:
halo:
image: halohub/halo:2.15 #使用镜像及版本
container_name: halo #容器名
restart: on-failure:3
volumes:
- /opt/halo:/root/.halo2 #将容器的/root/.halo2映射到主机/opt/halo下
ports:
- "8090:8090" #容器暴露的端口
command:
- --spring.r2dbc.url=r2dbc:pool:mysql://192.168.1.5:3306/halo
- --spring.r2dbc.username=root #数据库用户
- --spring.r2dbc.password=****** #数据库密码
- --spring.sql.init.platform=mysql #数据库类型
- --halo.external-url=https://www.youcats.cn #halo外部访问地址
- --halo.security.initializer.superadminusername=admin #超管账户
- --halo.security.initializer.superadminpassword=****** #超管密码
#端口号 默认8090
- --server.port=8090
启动halo容器
cd /opt/docker-compose/halo
docker-compose up -d
访问
https://www.youcats.cn
Nginx代理
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name youcats.cn;
#隐藏nginx版本号
server_tokens off;
#ssl证书文件--youcats.cn
ssl_certificate /***/youcats.cn_bundle.crt;
ssl_certificate_key /***/youcats.cn.key;
#服务端要支持 协议配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
client_max_body_size 1024m;
location / {
proxy_pass http://127.0.0.1:8090;
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;
}
}