Skip to content

Ruyu-Blog部署文档

准备

  1. 一台至少2核4g的服务器(项目系统CentOS7)
  2. 安装git的本机

后端:

  1. MySQL 8.0
  2. Redis >= 7.2.3
  3. RabbitMQ Latest

1.环境准备

1.1.安装Docker

官方网站地址:https://docs.docker.com/engine/install/#server命令:

下载所需工具包

shell
sudo yum install -y yum-utils

设置阿里云镜像源

shell
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装 Docker Engine(遇到选择一路按y回车)

shell
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动 Docker 服务

shell
 sudo systemctl start docker

测试是否安装成功(正确显示版本表示安装成功)

shell
docker -v

设置国内镜像

bash
vi  /etc/docker/daemon.json

添加

bash
{
    "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com",
    "https://hub.uuuadc.top",
    "https://docker.anyhub.us.kg",
    "https://dockerhub.jobcher.com",
    "https://dockerhub.icu",
    "https://docker.ckyl.me",
    "https://docker.awsl9527.cn"
    ],
    "live-restore": true
}

依次执行以下命令,重新启动 Docker 服务。

bash
systemctl daemon-reload
service docker restart

检查是否生效

bash
docker info

是否有以下信息:

安装 Docker Compose

我们一般都是通过docker compose来安装中间件,所以这个必不可少。会比较慢,可手动下载

下载地址:https://github.com/docker/compose/releases/download/1.28.6/docker-compose-Linux-x86_64 下载后执行命令 :

bash
cd /usr/local/bin
rz #直接通过rz导入文件

将可执行权限应用于二进制文件:

bash
sudo chmod +x /usr/local/bin/docker-compose

测试是否安装成功:

bash
docker-compose --version

ps:记住把文件的名字改为:docker-compose

1.1.1.遇到问题

  1. 报错 Error: Nothing to do

解决办法,更新yum源:

shell
yum -y update

1.2.部署Mysql

创建挂载目录

bash
#创建挂载目录
mkdir -p /data/mysql/data;
mkdir -p /data/mysql/conf;

创建yml文件

bash
vim /data/mysql/docker-compose.yml

填入配置

bash
version: '3'
services:
  mysql:
    image: mysql:8.0 #mysql版本
    container_name: mysql
    volumes:
      - /data/mysql/data:/var/lib/mysql
      - /data/mysql/conf/my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf
    restart: always
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: 123456 #root用户密码
      TZ: Asia/Shanghai
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

创建配置文件

bash
vim /data/mysql/conf/my.cnf
bash
[mysqld]
default-storage-engine=INNODB  # 创建新表时将使用的默认存储引擎
character-set-server=utf8mb4      # 设置mysql服务端默认字符集
pid-file        = /var/run/mysqld/mysqld.pid  # pid文件所在目录
socket          = /var/run/mysqld/mysqld.sock # 用于本地连接的socket套接字
datadir         = /var/lib/mysql              # 数据文件存放的目录
symbolic-links=0
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION # 定义mysql应该支持的sql语法,数据校验等!

# 允许最大连接数
max_connections=200


# 同一局域网内注意要唯一
server-id=3306
# 开启二进制日志功能 & 日志位置存放位置`/var/lib/mysql`
#log-bin=mysql-bin
log-bin=/var/lib/mysql/mysql-bin
# binlog格式
# 1. STATEMENT:基于SQL语句的模式,binlog 数据量小,但是某些语句和函数在复制过程可能导致数据不一致甚至出错;
# 2. MIXED:混合模式,根据语句来选用是 STATEMENT 还是 ROW 模式;
# 3. ROW:基于行的模式,记录的是行的完整变化。安全,但 binlog 会比其他两种模式大很多;
binlog_format=ROW
# FULL:binlog记录每一行的完整变更 MINIMAL:只记录影响后的行
binlog_row_image=FULL
# 日志文件大小
max_binlog_size=100M
# 定义清除过期日志的时间(这里设置为7天)
expire_logs_days=7

# ================= ↑↑↑ mysql主从同步配置end ↑↑↑ =================

[mysql]
default-character-set=utf8mb4

[client]
default-character-set=utf8mb4  # 设置mysql客户端默认字符集

到对应目录下启动容器

bash
cd /data/mysql
docker-compose up -d

看见以下信息代表成功

记得防火墙开对应的端口号 !!!一定要记得换端口和复杂密码,不然等着被比特币勒索!!!

navicate测试链接成功

最后新建一个数据库,把项目目录下的sql文件放进去运行!!!

1.3.部署Redis

创建挂载目录

bash
#创建挂载目录
mkdir -p /data/redis

创建yml文件

bash
vim /data/redis/docker-compose.yml

填入配置

bash
version: '3'
services:
  redis:
    image: redis:7.2.3
    container_name: redis
    restart: always
    ports:
      - 6379:6379
    volumes:
      - /data/redis/redis.conf:/etc/redis/redis.conf
      - /data/redis/data:/data
      - /data/redis/logs:/logs
    command: ["redis-server","/etc/redis/redis.conf"]

创建挂载的配置文件

bash
vim /data/redis/redis.conf
bash
protected-mode no
port 6379
timeout 0
#rdb配置
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /data
appendonly yes
appendfsync everysec
#设置你的redis密码
requirepass 123456

注意:protected-mode no 不加,无法连接! 到对应目录下启动容器

bash
cd /data/redis
docker-compose up -d
#如果需要强制重新构建
docker-compose up --force-recreate -d

记得防火墙开启对应的端口!!!

使用工具测试连接

1.4.部署RabbitMQ

安装镜像

bash
docker pull rabbitmq

根据下载的镜像创建和启动容器

bash
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq

参数说明:

-d 后台运行容器;
--name 指定容器名;
-p 指定服务运行的端口(5672:应用访问端口;15672:控制台Web端口号);
-v 映射目录或文件;
--hostname  主机名(RabbitMQ的一个重要注意事项是它根据所谓的 “节点名称” 存储数据,默认为主机名);
-e 指定环境变量;(RABBITMQ_DEFAULT_VHOST:默认虚拟机名;RABBITMQ_DEFAULT_USER:默认的用户名;RABBITMQ_DEFAULT_PASS:默认用户名的密码)

查看正在运行容器

bash
docker ps

进入容器内部

比如我自己的:docker exec -it a78657b2e2e1 /bin/bash

bash
docker exec -it 容器id /bin/bash

运行web插件

bash
rabbitmq-plugins enable rabbitmq_management

浏览器运行

http://ip:15672/

默认用户名和密码是guest

解决:⚠ All stable feature flags must be enabled after completing an upgrade. [Learn more]

全部启用

解决不显示图表问题

正常首页应该是这样

解决方法:

  1. 查看所有容器(看id)
bash
docker ps -a
  1. 进入容器内部
bash
docker exec -it 容器id /bin/bash
  1. 进入指定目录
bash
cd /etc/rabbitmq/conf.d/
  1. 修改 management_agent.disable_metrics_collector = false
bash
echo management_agent.disable_metrics_collector = false > management_agent.disable_metrics_collector.conf
  1. 退出容器
bash
exit
  1. 重启容器
bash
docker restart 容器Id

修改密码:

  1. 进入容器内部
  2. 查看RabbitMQ当前的用户列表
bash
rabbitmqctl list_users

  1. 修改密码
bash
rabbitmqctl change_password 用户名 '[密码]'

1.5.部署Minio

创建挂载目录

bash
#创建挂载目录
mkdir -p /data/minio

创建yml文件

bash
vim /data/minio/docker-compose.yml

填入配置

bash
version: '3'
services:
  minio:
    image: "minio/minio"
    container_name: minio
    ports:
      - "9000:9000" # api 端口
      - "9001:9001" # 控制台端口
    environment:
      MINIO_ROOT_USER: admin # 管理后台用户名
      MINIO_ROOT_PASSWORD: 12345678 # 管理后台密码,最小8个字符
      MINIO_COMPRESS: "off" # 开启压缩 on 开启 off 关闭
      MINIO_COMPRESS_EXTENSIONS: "" # 扩展名 .pdf,.doc 为空 所有类型均压缩
      MINIO_COMPRESS_MIME_TYPES: "" # mime 类型 application/pdf 为空 所有类型均压缩
    volumes:
      - /data/minio/data:/data/ # 映射当前目录下的data目录至容器内/data目录
      - /data/minio/config:/root/.minio/ # 映射配置目录
    command: server --address ':9000' --console-address ':9001' /data  # 指定容器中的目录 /data
    privileged: true

到对应目录下启动容器

bash
cd /data/minio
docker-compose up -d
#如果需要强制重新构建
docker-compose up --force-recreate -d

打开对应的控制台: http://ip:9001/记得服务器防火墙开启9000,9001端口!!!使用对应的账号密码登录!

创建一个对应的桶

设置访问权限

填写

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "*"
                ]
            },
            "Action": [
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::blog"
            ]
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "*"
                ]
            },
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::blog"
            ],
            "Condition": {
                "StringEquals": {
                    "s3:prefix": [
                        "*"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "*"
                ]
            },
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::blog/**"
            ]
        }
    ]
}

创建密钥

密钥只要第一次可见,创建后记得保存好

1.6.部署音乐后端

  1. 拉取镜像
bash
docker pull binaryify/netease_cloud_music_api
  1. 运行
bash
docker run -p 3000:3000 --name netease_cloud_music_api -d binaryify/netease_cloud_music_api

记得服务器防火墙开启对应端口!!!

1.7.部署一言接口

可选,官网的一言接口有qps限制,想使用流畅一点就自己部署一个

官方部署文档:https://developer.hitokoto.cn/sentence/deploy.html

一言官方提供了各种部署方式,自己选一个,官网使用 Docker 部署

2.申请第三方登录

2.1.Gitee

设置 > 第三方应用

应用回调地址

bash
http://[后端地址]:[端口]/oauth/gitee/callback

2.2.Github

Settings/Developer Settings > OAuth Apps

回调地址填写方式与Gitee一致,记得生成密钥后保存,只有第一次可见!!!

3.申请邮件发送

3.1.QQ

邮箱设置找到 **POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,**去开启服务,得到密钥

3.2.163

进入设置,找到 POP3/SMTP/IMAP

ps: 可以先申请 IMAP/SMTP服务 试一下是否可行,不行就使用另外一个

4.本地运行项目

4.1.拉取项目

项目地址:kuailemao/Ruyu-Blog

小白请下载最新的发行版本

命令:

shell
git clone git@gitee.com:kuailemao/ruyu-blog.git

4.2.运行后端

使用idea打开,下载后端依赖

resources目录下新建application-dev.yml

添加配置

latex
spring:
  security:
    jwt:
      key: jwt-key
      # jwt 的有效时间(天)
      expire: 7
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://[数据库IP]:[数据库端口]/blog?useSSL=false&allowPublicKeyRetrieval=true
    username: root
    password: [数据库密码]
  data:
    redis:
      # redis 端口
      port: 6379
      # redis 地址
      host:
      # redis 密码
      password:
      # redis连接超时时间(毫秒)
      timeout: 10000
      # 数据库索引,默认为0
      database: 1
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  rabbitmq:
    # rabbitmq 地址
    host:
    # rabbitmq 端口
    port: 5672
    # rabbitmq 用户名
    username:
    # rabbitmq 密码
    password:
    listener:
      simple:
        retry:
          enabled: true #是否开启消费者重试
          max-attempts: 3 #最大重试次数
          initial-interval: 6000 #重试间隔时间(单位毫秒)
          multiplier: 2 #间隔时间乘子,间隔时间*乘子=下一次的间隔时间,最大不能超过设置的最大间隔时间
          max-interval: 10000 #重试最大时间间隔(单位毫秒)
    # 邮箱队列名称
    queue:
      email: email_queue
      log-login: log_login_queue
      log-system: log_system_queue
    # 邮箱交换机名称
    exchange:
      email: email_exchange
      log: log_exchange
    # 邮箱路由键
    routingKey:
      email: email_routing_key
      log-login: log_routing_key_login
      log-system: log_routing_key_system
  mail:
    host: smtp.qq.com
    username:  # 不可透露,邮件发送账号
    password:  # 不可透露,邮件发送账号密钥
    chat-gpt:
      email:  # 不可透露
      password:  # # 不可透露
    properties:
      mail.smtp.auth: true
      mail.smtp.starttls.enable: true
  servlet:
    multipart:
      max-file-size: 10MB
      max-request-size: 10MB
  quartz:
    # 将 Quartz 持久化方式修改为 jdbc
    job-store-type: jdbc
    properties:
      org:
        quartz:
          scheduler:
            # 实例节点 ID 自动生成
            instanceId: AUTO
          jobStore:
            class: org.quartz.impl.jdbcjobstore.JobStoreTX
            dataSource: quartz_jobs
          dataSource:
            quartz_jobs:
              driver: com.mysql.cj.jdbc.Driver
              URL: jdbc:mysql://[数据库IP]:[数据库端口]/blog?useSSL=false&allowPublicKeyRetrieval=true
              user: root
              password: [数据库密码]
mybatis:
  mapper-locations: classpath:mapper/*.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    db-config:
      # 逻辑删除
      logic-delete-field: isDeleted
      # 逻辑删除值
      logic-delete-value: 1
      # 逻辑未删除值
      logic-not-delete-value: 0
      # id 自增
      id-type: auto
# springdoc-openapi项目配置,访问 http://127.0.0.1:8088/doc.html
springdoc:
  swagger-ui:
    path: /swagger-ui.html
    tags-sorter: alpha
    operations-sorter: alpha
  api-docs:
    path: /v3/api-docs
  group-configs:
    - group: 'default'
      paths-to-match: '/**'
      packages-to-scan: xyz.kuailemao
oauth:
  # gitee 登录
  gitee:
    client-id:
    client-secret:
    redirect-uri:
  # gitub 登录
  github:
    client-id:
    client-secret:
    redirect-uri:
web:
  index:
    # 网站前端首页
    path: http://kuailemao.xyz/
# knife4j的增强配置,不需要增强可以不配
knife4j:
  enable: true
  setting:
    language: zh_cn
http_pool:
  max_total: 200
  default_max_per_route: 100
  connect_timeout: 5000
  connection_request_timeout: 1000
  socket_timeout: 65000
  validate_after_inactivity: 2000
# 连接 minio
minio:
  # 访问地址
  endpoint:
  accessKey:
  secretKey:
  # 桶名称
  bucketName:

把上面准备好的环境找到对应的地方配置好各种ip跟端口或者密钥

看到以下信息,恭喜你,后端启动成功!

4.3.运行前端

前提具备条件:

  • pnpm >= 8.12.0
  • node >= 16.17.0

4.3.1.运行前台

  1. 找到打开 kuailemao-blog 目录

右键打开终端

运行命令

bash
pnpm install
pnpm run dev

看到访问链接后恭喜你运行成功!!!

效果如上,简单吧(滑稽)

4.3.2.运行后台

与上面同样的方式,找到kuailemao-admin文件夹,打开终端 运行命令:

bash
pnpm install
pnpm dev

看到访问路径表示运行成功

效果如下:

4.3.3.音乐模块

开源地址:https://github.com/XiangZi7/KM-Music-Player

这个页面是单独部署的并非集成在项目内,需要的自己参考开源大佬的文档部署

5.部署

5.1.部署后端

5.1.1.项目打包

idea运行打包命令

得到一个打包好的Jar包

5.1.2.服务器部署

新建文件夹后进入

bash
mkdir /blog/backend
cd /blog/backend

上传打包文件

bash
rz  # Enter

把你打包好的后端Jar包上传

新建 Dockerfile

bash
vim Dockerfile

填入配置

bash
# 使用官方的OpenJDK 17镜像作为基础镜像
FROM openjdk:17

# 设置工作目录
WORKDIR /app

# 复制项目的jar文件到容器中
COPY blog-backend-0.0.1-SNAPSHOT.jar /app/app.jar

# 暴露应用运行的端口
EXPOSE 8088

# 运行Spring Boot应用
ENTRYPOINT ["java", "-jar", "/app/app.jar"]

构建镜像

bash
docker build . -t ruyu-blog-hd

运行

bash
docker run --name ruyu-blog-hd -d -p 8088:8088 ruyu-blog-hd

检查是否成功

bash
docker ps

记得服务器防火墙开启对应端口!!!

5.2.部署前台

找到 kuailemao-blog 目录下面的生产环境配置文件

VITE_SERVE:项目后端地址 VITE_FRONTEND_URL:前台域名(没有配就填写正确ip) VITE_MUSIC_SERVE:音乐播放器的后端地址 VITE_MUSIC_FRONTEND_URL:音乐模块的前端地址(没有就不填写,把音乐模块去掉) 部署前测试

先在 .env.development 开发环境中,使用部署好的后端尝试是否能正确运行

测试没问题,打包

5.2.1.项目打包

使用上面方法在 kuailemao-blog 目录下打开 cmd 终端

运行打包命令

bash
pnpm build

等待打包完成,根目录下面出现 dist 命令

5.2.2.项目部署

回到服务器,运行命令

bash
mkdir /blog/blog-qt
cd /blog/blog-qt/

把打包好的 dist 文件夹上传

bash
rz

新建 Dockerfile

bash
vim Dockerfile

填入配置

bash
FROM nginx

MAINTAINER 博客前台

RUN rm /etc/nginx/conf.d/default.conf

ADD default.conf /etc/nginx/conf.d/

COPY dist/ /usr/share/nginx/html/

新建 nginx 配置文件

bash
vim default.conf

填入配置

bash
# 定义HTTP服务器
    server {
        listen 80;              # 监听端口

        server_name localhost;    # 域名

        location / {
             root   /usr/share/nginx/html;
             index  index.html index.htm;
             try_files $uri $uri/ /index.html =404;
        }

        # 配置代理路径
        location /api/ {
            proxy_pass http://[域名/ip+端口]/;        # 转发请求的目标地址
            proxy_set_header Host $host;             # 设置请求头中的Host字段
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                            # 设置HTTP头中的X-Forwarded-For字段,表示客户端真实IP,多个IP用逗号隔开
            proxy_set_header X-Real-IP $remote_addr; # 设置请求头中的X-Real-IP字段,表示客户端真实IP
        }

        # 配置代理路径
        location /wapi/ {
            proxy_pass http://[域名/ip+端口]/;        # 转发请求的目标地址,音乐后端
        }

        # 配置错误页面
        error_page 404 /404.html;           # 404错误页
        location = /404.html {
            internal;                       # 不接受外部访问
            root /usr/share/nginx/html;     # 404错误页文件所在目录
        }
    }

如果有域名,并且后台不想使用另外一个端口访问,假如 88,因为服务器只有一个 80端口,就可以使用nginx转发,如下配置

bash
# 定义HTTP服务器
    server {
        listen 80;              # 监听端口

        server_name kuailemao.xyz;    # 域名

        location / {
             root   /usr/share/nginx/html;
             index  index.html index.htm;
             try_files $uri $uri/ /index.html =404;
        }

        # 配置代理路径
        location /api/ {
            proxy_pass http://[域名/ip+端口]/;        # 转发请求的目标地址,项目后端
            proxy_set_header Host $host;             # 设置请求头中的Host字段
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                            # 设置HTTP头中的X-Forwarded-For字段,表示客户端真实IP,多个IP用逗号隔开
            proxy_set_header X-Real-IP $remote_addr; # 设置请求头中的X-Real-IP字段,表示客户端真实IP
        }

        # 配置代理路径
        location /wapi/ {
            proxy_pass http://[域名/ip+端口]/;        # 转发请求的目标地址,音乐后端
        }

        # 配置错误页面
        error_page 404 /404.html;           # 404错误页
        location = /404.html {
            internal;                       # 不接受外部访问
            root /usr/share/nginx/html;     # 404错误页文件所在目录
        }
    }

    # 二级域名反向代理,访问后台
    server {
        listen 80;
        server_name blog.kuailemao.xyz;

        location / {
            proxy_pass http://kuailemao.xyz:81/; # 实际的后台路径
            client_max_body_size 100M;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }

使用第二种方法记得服务器那边也要解析二级域名!!!

如果部署的是v1.4.0版本前端引入了gzip压缩需要在nginx里面也配置(http的内层/server的内层)

text
    gzip on;  # 启用 Gzip 压缩
    gzip_disable "msie6";  # 禁用 IE6 的 Gzip 压缩

    gzip_vary on;  # 在响应头中添加 Vary: Accept-Encoding
    gzip_proxied any;  # 压缩代理服务器的响应

    gzip_comp_level 6;  # 压缩级别(1-9,默认值为 1)
    gzip_buffers 16 8k;  # 压缩缓冲区大小
    gzip_http_version 1.1;  # 启用 Gzip 的 HTTP 版本

    gzip_types text/plain text/css application/json application/javascript text/xml application/xml+rss text/javascript image/svg+xml;  # 要压缩的文件类型

构建镜像

bash
docker build . -t blog-qt

运行

bash
docker run --name blog-qt -d -p 80:80 blog-qt

测试是否成功

bash
docker ps

前台效果

二级域名反向代理,后台访问效果

5.3.后台部署

找到对应的生产环境配置文件

VITE_APP_BASE_URL:后端地址 VITE_APP_DOMAIN_NAME:文件上传地址,也就是 minio 地址,使用9000端口 测试

可以根前台一样先把开发环境配置(.env.development)改成服务器的配置,测试是否可以正确使用

5.3.1.项目打包

打包命令

bash
pnpm build

看见以下信息后表示打包成功

5.3.2.后台部署

回到服务器,运行命令

bash
mkdir /blog/blog-ht
cd /blog/blog-ht

使用 rz 把打包好的 dist 文件上传到该目录 新建 Dockerfile

bash
vim Dockerfile

填入配置

bash
FROM nginx

MAINTAINER 博客后台

RUN rm /etc/nginx/conf.d/default.conf

ADD default.conf /etc/nginx/conf.d/

COPY dist/ /usr/share/nginx/html/

新建 default.conf 配置文件

bash
vim default.conf

填入配置

bash
server {
    listen 81;
    server_name  _;
    # gzip config
    gzip on;
    gzip_min_length 1k;
    gzip_comp_level 9;
    gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
    gzip_vary on;
    gzip_disable "MSIE [1-6]\.";

    root /usr/share/nginx/html;
    include /etc/nginx/mime.types;

    location / {
        try_files $uri $uri/ /index.html;
    }

    location /api/ {
        proxy_pass http://[域名/ip+端口]/;  # 项目后端地址
        client_max_body_size 100M;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

构建镜像

bash
docker build . -t blog-ht

运行

bash
docker run --name blog-ht -d -p 81:81 blog-ht

检查是否运行成功

bash
docker ps

查看效果

不管前台还是后台,配置了域名就使用域名访问,没配置就使用ip+端口也可以!!!

6.最后

如果你以上都成功了,那么恭喜你,成功部署了我的博客项目!!! 因为群里面可能小白毕竟多,这份部署文档可能就写的比较详细,我也花了很多心思,每个服务其实都有很多不同的部署方法,我在这里选择了最简单,最不容易出错的 Docker 容器的部署方法,如果有大佬的话就适当跳过就好了,如果发现有问题或者有什么缺陷,大家都可以在交流群里面提出来。 这个项目花费了我大量精力,项目不敢保证一定没有问题,但是会持续优化更新,大家也可以在群里面提建议。 在这里也感谢各位的支持与认可,如果可以,希望能给小弟两颗星星,开源不易,感谢大家!!!gitee&github地址:https://gitee.com/kuailemao/ruyu-bloghttps://github.com/kuailemao/Ruyu-Blog