Mix Space 后端搭建

27 天前(已编辑)
/ , ,
27
摘要
本文介绍了如何在Linux系统(如Ubuntu/Debian)上安装和配置1Panel,使用Docker部署Core后端,并设置OpenResty作为反向代理。主要内容包括:系统要求、ICP备案、SSL证书申请、1Panel的在线安装与配置、Docker的安装与更新、Core后端的部署与配置、反向代理设置以及Core的初始化和更新步骤。

阅读此文章之前,你可能需要首先阅读以下的文章才能更好的理解上下文。

Mix Space 后端搭建

一·项目简介与准备

简介

Mix Space 是一个一款简洁而不简单的个人博客系统,它够快,够现代。你可以利用它构建一个属于自己的个人空间,记录生活,分享知识。

要求

系统:Linux(Ubuntu/Debian)

推荐配置要求:CPU2核及以上 内存4GB及以上

准备

国内服务器需提前进行 ICP 备案以便公网访问。
ICP/IP地址/域名信息备案管理系统
SSL 证书申请(阿里云免费)

二·安装 1panel

在这里我们使用在线安装

## Ubuntu
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.sh
## Debian 
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh

其余设备指令可看这里在线安装 - 1Panel 文档

在安装过程中会填写下列相关内容

## 设置 1Panel 安装目录(默认为/opt)
默认目录是/opt,如果没有特殊要求,回车即可,当然也可以自定义设置成自己目录。
## 设置 1Panel 端口(默认为20410):
根据自己需求设置,但需要开启服务器防火墙端口
## 设置1Panel安全入口(默认为1ca7f81e6d):
根据自己需求进行设置,安全入口就是使用ip地址登录时端口后面的后缀
## 设置1Panel面板用户默认为244118a93b)
这里设置用户名和密码

保存1Panel登录地址、安全入口、用户名和密码信息。
远程连接到云服务器后,执行 1pctl user-info 命令可获取安全入口(entrance)。
修改密码可执行命令: 1pctl update password
安装成功后,控制台会打印面板访问信息,可通过浏览器访问 1Panel:http://目标服务器 IP 地址:目标端口/安全入口

在 1panel 中配置容器的镜像加速

1panel

1panel
在镜像加速中设置 https://docker.1panel.live
随后在应用商店中安装openresty 作为反代工具

三·安装 Core 后端

安装 Docker

首先安装并更新一些必要的软件包

apt update
apt upgrade -y
apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates

安装 Docker 由于 Docker 官方仓库位于国外,如果服务器在国内使用阿里云的源进行安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

若服务器在国外可直接使用 Docker 官方指令进行安装

curl -fsSL https://get.docker.com | bash -s docker

Docker 安装完成后使用以下指令进行验证

docker -v
## Docker version 28.0.1, build 068a01e
docker-compose version
## Docker Compose version v2.33.1

使用 Docker 进行部署

拉取 Core配置文件

cd /opt && mkdir -p mx-space/core && cd $_
## 创建/opt/mx-space/core文件夹
wget https://fastly.jsdelivr.net/gh/mx-space/core@master/docker-compose.yml
## 拉取配置文件

修改 Core配置文件

使用 vim 进行文件修改

cd /opt/mx-space/core
vim docker-compose.yml

或在 1panel 中系统-文件-/opt/mx-space/core/docker-compose.yml 进行编辑

## 配置文件的一部分
services:
  app:
    container_name: mx-server
    image: innei/mx-server:latest
    environment:
      - TZ=Asia/Shanghai
      - NODE_ENV=production
      - DB_HOST=mongo
      - REDIS_HOST=redis
      - ALLOWED_ORIGINS=localhost
      - JWT_SECRET=YOUR_SUPER_SECURED_JWT_SECRET_STRING

在 docker-compose.yml 中的 environment 字段填入对应内容,使其符合 yaml 语法,保存即可。

  • JWT 密钥:JWT_SECRET:需要填写长度不小于 16 个字符,不大于 32 个字符的字符串,用于加密用户的 JWT,务必保存好自己的密钥,不要泄露给他人。
  • 被允许的域名:ALLOWED_ORIGINS:需要填写被允许的域名,通常是前端的域名,如果允许多个域名访问,用英文逗号,分隔。
  • 是否开启加密:ENCRYPT_ENABLE:如果你确定要开启加密,则在配置文件中加入对应内容,开启加密后,你需要在下方填写加密密钥。
  • 加密密钥:ENCRYPT_KEY:如果你不知道这是什么,那么不建议开启此功能,具体内容可参考 Key 加密与安全性 关于 JWT 密钥可以使用 MD5 转换将你熟悉的文字加密作为 JWT 密钥 域名通常为前端域名:例如 www.glsaone.xyz , glsaone.xyz,localhost loacalhost 作为 前端Api 调用需填入

在相关内容填写完毕记得保存

启动 Core 文件

cd /opt/mx-space/core
docker-compose pull && docker compose up -d

此时后端已经启动完成,我们需要设置反向代理以进行正常访问

四·反向代理

OpenResty 设置反向代理

以1Panel+OpenResty为例:

  • 新建静态网站,填写对应域名
  • 配置SSL证书开启HTTPS
  • 在配置文件最后一个}的上方另起一行,粘贴如下配置,并保存。

双域名设置

这里假定前端后端域名均为 www.example.com

如果您使用此部分示例配置 Nginx 反向代理,您的:

  • API 地址为 https://server.example.com/api/v2
  • 前端(Shiro)地址为 https://www.example.com
  • GateWay 为 https://server.example.com
  • 本地后台为 https://server.example.com/proxy/qaqdmin

单域名设置

这里假定前端域名为 www.example.com,后端也为 www.example.com

如果您使用此部分示例配置 Nginx 反向代理,您的:

  • API 地址为 https://www.example.com/api/v2
  • 前端(Shiro)地址为 https://www.example.com
  • GateWay 为 https://www.example.com
  • 本地后台为 https://www.example.com/proxy/qaqdmin

Core 初始化

反向代理配置完成,访问后端 https://www.example.com/proxy/qaqdmin
根据页面提示完成初始化, 若完成后未正确跳转后台,
再次进入 https://www.example.com/proxy/qaqdmin 即可。

Core 更新

使用 Docker 服务进行更新

cd /opt/mx-space/core
docker-compose pull && docker compose up -d

五·特别鸣谢

在搭建Mix-space前后端的过程中,我得到了玖月大佬的极大帮助。无论是技术难题的解答还是宝贵的建议,都让我受益匪浅。在此,我想向玖月表达最诚挚的感谢!他的无私分享和耐心指导不仅帮助我克服了许多难题。

六·参考文献

Mix Space - An Alternative Personal Space - Mix Space 文档
Mix-Space部署最新后端Core - 华岁云小屋

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...