LuoSong
LuoSong
Published on 2024-05-10 / 36 Visits
0
0

Docker部署halo容器并使用nginx代理

Docker部署halo容器并使用nginx代理

参考官方halo安装教程

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;
  }
}

Comment