2157 技术博客

专注于 Web 开发、Node.js 后端架构与云原生部署。

记录全栈开发路上的踩坑经验与实战总结。

🟢 站点已安全运行,内容持续更新中

📚 近期技术分享

使用 Docker 快速搭建多租户 SaaS 平台的踩坑实录
在开发多公司隔离的项目管理系统时,如何通过 Docker 容器化技术,在单台 2核2G 的轻量服务器上稳定运行 MySQL 和 Node.js。本文详细记录了环境配置、网络端口映射以及数据卷挂载的实战经验。
阅读全文 →
Node.js 接口开发:从本地 LocalStorage 到云端 MySQL 的平滑迁移
很多初学者在开发单机网页时习惯使用本地缓存,但在商业化场景下,数据的安全性至关重要。本文分享如何利用 Express 框架设计 RESTful API,并使用连接池高效处理 MySQL 查询。
阅读全文 →
轻量应用服务器域名解析与 HTTPS 证书配置指南
网站正式上线前,必须搞定域名备案与 SSL 证书。本篇教程手把手教你如何在腾讯云后台进行 A 记录解析,并申请免费的 DV 证书,让你的网站告别“不安全”警告。
阅读全文 →
← 返回首页

使用 Docker 快速搭建多租户 SaaS 平台的踩坑实录

发布日期:2026-10-25 | 分类:云原生 / Docker | 作者:2157

一、背景介绍

最近在开发一套面向中小企业的项目管理系统,要求支持多公司隔离(SaaS 模式)。为了降低服务器成本,我选择了一台 2核2G4M 的腾讯云轻量应用服务器。

如果直接安装 Node.js 和 MySQL,环境配置容易冲突。于是,我采用了 Docker Compose 进行一键编排部署。

二、核心 Docker 配置文件

编写 docker-compose.yml 是最关键的一步。以下是我的配置代码:

version: '3.8'
services:
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: root123456
    ports:
      - "3306:3306"
  backend:
    image: node:18-alpine
    ports:
      - "3000:3000"
    command: sh -c "npm install && node index.js"
    depends_on:
      - db

三、踩坑与经验

1. 端口映射问题:一开始忘记在腾讯云后台的“防火墙”放行 3000 端口,导致本地死活连不上,排查了好久。

2. 数据卷挂载:MySQL 容器重启后数据会丢失,必须使用 `volumes` 将数据库文件挂载到宿主机。

3. 多租户隔离:所有的表必须带有 `company_id` 字段,后端在写 API 的时候,必须强制从 Token 中解析公司 ID,防止横向越权访问。

← 返回首页

Node.js 接口开发:从本地 LocalStorage 到云端 MySQL 的平滑迁移

发布日期:2026-10-28 | 分类:前端 / 后端交互 | 作者:2157

一、为什么放弃 LocalStorage?

早期版本的 HTML 原型,数据存在浏览器里,换个电脑就没了。为了让数据真正属于用户,必须上云。

二、Express 与连接池

后端我使用了 Express 框架。为了提高数据库查询性能,推荐使用 mysql2 的连接池。

const pool = mysql.createPool({
  host: 'db',
  user: 'root',
  password: 'root123456',
  database: 'tracker_db',
  connectionLimit: 10
});

三、前后端对接核心逻辑

前端不再直接读取数据,而是通过 fetch API 向后端发起请求。例如登录验证:

前端发送 JSON 数据 { username, password } 给后端。后端在数据库校验通过后,返回一个 Token,前端将其存入缓存,后续所有请求都要带上这个 Token 才能操作数据。

← 返回首页

轻量应用服务器域名解析与 HTTPS 证书配置指南

发布日期:2026-11-01 | 分类:运维 / 网络安全 | 作者:2157

一、为什么需要 HTTPS?

如果你的网站还是 HTTP 协议,浏览器地址栏会显示一个巨大的“不安全”警告,客户绝对不敢填密码。而且,很多小程序和微信接口都强制要求 HTTPS。

二、申请免费 SSL 证书

在腾讯云控制台,搜索“SSL证书”,申请一张免费的 DV 单域名证书。审核非常快,几分钟就能下发。

三、Nginx 配置示例

下载证书后,将其传到服务器。如果你用 Nginx 做反向代理,配置如下:

server {
    listen 443 ssl;
    server_name 2157.com.cn;
    
    ssl_certificate /path/to/cert.crt;
    ssl_certificate_key /path/to/cert.key;

    location / {
        proxy_pass http://127.0.0.1:3000;
    }
}

配置完成后重启 Nginx,你的网站就穿上了“防弹衣”,左上角的绿锁就亮起来了。