建站日志

拖更很长很长很长。。。。之后,终于有空再来重建博客了

之前的hexo博客,由于重置了系统,所以对应的环境都失效了(悲

这次使用了halo2.X框架,有后台的博客系统确实爽

(这篇博客没用md来写,真的超级不习惯)

环境搭建

  • Ubuntu 22.04

  • Docker 24.0.5

  • docker-compose 1.29.2

搭建步骤

  1. 编写对应docker-compose.yml(ngingx proxy manager 、halo2.7.0)

    version: '3'
    services:
      app:
        image: 'jc21/nginx-proxy-manager:latest'
        restart: unless-stopped
        ports:
          - '80:80'  # 冒号左边可以改成自己服务器未被占用的端口
          - '81:81'  # 冒号左边可以改成自己服务器未被占用的端口
          - '443:443' # 冒号左边可以改成自己服务器未被占用的端口
        volumes:
          - ./data:/data # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 data 文件夹中
          - ./letsencrypt:/etc/letsencrypt  # 冒号左边可以改路径,现在是表示把数据存放在在当前文件夹下的 letsencrypt 文件夹中


    version: "3"
    
    services:
      halo:
        image: halohub/halo:2.6.0
        #可以自己改成新的版本
        container_name: halo
        restart: on-failure:3
        depends_on:
          halodb:
            condition: service_healthy
        networks:
          halo_network:
        volumes:
          - ./:/root/.halo2
        ports:
          - "8090:8090"
        command:
          - --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
          - --spring.r2dbc.username=root
          # MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
          - --spring.r2dbc.password=*******
          - --spring.sql.init.platform=mysql
          # 外部访问地址,请根据实际需要修改
          - --halo.external-url=http://localhost:8090/
          # 初始化的超级管理员用户名
          - --halo.security.initializer.superadminusername=admin
          # 初始化的超级管理员密码
          - --halo.security.initializer.superadminpassword=P@88w0rd
    
      halodb:
        image: mysql:8.0.31
        container_name: halodb
        restart: on-failure:3
        networks:
          halo_network:
        command: 
          - --default-authentication-plugin=mysql_native_password
          - --character-set-server=utf8mb4
          - --collation-server=utf8mb4_general_ci
          - --explicit_defaults_for_timestamp=true
        volumes:
          - ./mysql:/var/lib/mysql
          - ./mysqlBackup:/data/mysqlBackup
        ports:
          - "3306"
        healthcheck:
          test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
          interval: 3s
          retries: 5
          start_period: 30s
        environment:
          # 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
          - MYSQL_ROOT_PASSWORD=*******
          - MYSQL_DATABASE=halo
    
    networks:
      halo_network:
  2. docker-compose 运行

    docker-compose up -d

  3. docker-compose 更新、卸载(可能会用到)

    #更新
    docker-compose down 
    #可以先备份一份
    docker-compose pull
    
    docker-compose up -d    # 请不要使用 docker-compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker-compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。
    
    docker image prune  # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像
    
    #卸载
    docker-compose down
    
    #删除本地数据所在文件夹

使用Nginx proxy manager 进行反向代理

(记得先备案,不然无法设置SSL)

正向代理:用户套一个代理壳子,然后直接向服务器发送一些请求,服务器进行对应的响应

一定程度上保护了用户的隐私和安全

反向代理:用户向一个代理服务器发送请求,然后代理服务器根据请求的报头来选择进行响应的服务器

一定程度上保护了服务器方的隐私和安全

TODO

  • 搬运旧博客

  • 学习一些新的开发技术,编写博客

  • 记录一下实习的部分内容,和学习到的知识

相关链接

在使用过程中,有任何问题都可以通过以上链接找寻答案,或者联系我们。

文章作者: P4ul
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 打工人驿站
杂谈 Halo Docker nginx
喜欢就支持一下吧
打赏
微信 微信
支付宝 支付宝