上一篇 下一篇 分享链接 返回 返回顶部

Debian 内网部署实战:从系统加固到 Docker、Nginx 与备份配置全流程

发布人:慈云数据-客服中心 发布时间:8小时前 阅读量:0

Debian 私有化部署方案|附配置文件

在企业数字化建设过程中,越来越多的业务系统需要部署在自有服务器、内网机房或私有云环境中,以满足数据安全、访问控制、合规审计、成本可控等要求。Debian 作为稳定性极高、社区成熟、软件仓库丰富的 Linux 发行版,非常适合作为私有化部署的基础操作系统。无论是部署 Web 应用、数据库、中间件、容器平台,还是构建内网服务集群,Debian 都能提供长期稳定的运行环境。

本文将围绕 Debian 私有化部署方案 展开,介绍从系统规划、基础安装、网络配置、安全加固、软件源配置、服务部署、Nginx 反向代理、防火墙、日志管理、备份策略到运维建议的完整流程,并附带常用配置文件示例,方便在实际项目中参考使用。


一、方案适用场景

Debian 私有化部署方案适用于以下场景:

  1. 企业内部业务系统部署
    例如 OA、CRM、ERP、知识库、项目管理系统、内部网盘等。

  2. 私有云或本地数据中心部署
    在物理服务器、虚拟机平台、VMware、Proxmox、OpenStack 等环境中安装 Debian。

  3. 国产化或信创环境中的基础服务器部署
    在特定硬件或内网环境中搭建稳定的 Linux 服务节点。

  4. 容器化服务运行环境
    使用 Docker、Docker Compose 或 Kubernetes 部署应用。

  5. 数据安全要求较高的系统
    例如金融、政务、医疗、教育等领域,需要数据不出内网。


二、整体架构设计

一个典型的 Debian 私有化部署环境可以采用如下架构:

用户终端
   │
   │ HTTPS / 内网访问
   ▼
Nginx 反向代理服务器
   │
   ├── Web 应用服务
   ├── API 服务
   ├── 数据库服务
   ├── Redis / MQ 中间件
   └── 文件存储服务

如果是单机部署,可以将所有服务安装在同一台 Debian 服务器上;如果是生产环境,建议采用分层部署:

层级 说明
接入层 Nginx、负载均衡、HTTPS 证书
应用层 Java、Node.js、Python、Go 等业务服务
数据层 MySQL、PostgreSQL、Redis、MongoDB 等
存储层 本地磁盘、NFS、MinIO、NAS
运维层 日志、监控、备份、告警

对于中小型企业,建议初期采用 单机或双机部署;随着业务增长,再逐步演进为多节点集群。


三、服务器基础规划

在部署前,需要明确服务器资源和系统规划。

1. 推荐硬件配置

规模 CPU 内存 磁盘 适用场景
测试环境 2 核 4GB 50GB 功能验证、开发测试
小型生产 4 核 8GB 100GB+ 小型业务系统
中型生产 8 核 16GB 300GB+ 企业内部系统
大型生产 16 核+ 32GB+ 1TB+ 高并发、多服务部署

2. 推荐磁盘分区

建议不要将所有空间都放在根目录 / 下。可以参考以下分区方案:

挂载点 建议大小 说明
/ 30GB - 50GB 系统目录
/boot 1GB 启动分区
/var 50GB+ 日志、缓存、服务数据
/data 按需分配 应用、数据库、文件存储
swap 内存的 1-2 倍 交换分区

如果业务数据较多,建议单独挂载 /data,并将数据库、应用文件、上传目录等放在该目录下。


四、Debian 系统安装建议

建议使用 Debian Stable 版本,例如 Debian 12 Bookworm。安装时可选择最小化安装,仅安装 SSH Server 和基础系统工具,避免安装不必要的软件包,减少攻击面。

安装完成后,首先更新系统:

sudo apt update
sudo apt upgrade -y
sudo apt install -y vim curl wget net-tools htop unzip zip tar git lsof ca-certificates gnupg

查看系统版本:

cat /etc/debian_version
uname -a

五、配置静态 IP

私有化部署通常要求服务器 IP 固定,避免重启后地址变化影响服务访问。

Debian 12 默认可能使用 systemd-networkd 或 NetworkManager,也可能仍然使用 /etc/network/interfaces。以下以传统方式为例。

配置文件:/etc/network/interfaces

auto lo
iface lo inet loopback

auto ens33
iface ens33 inet static
    address 192.168.10.20
    netmask 255.255.255.0
    gateway 192.168.10.1
    dns-nameservers 192.168.10.1 223.5.5.5 8.8.8.8

注意:ens33 是网卡名称,实际环境中可能是 eth0ens160enp0s3 等,可以通过以下命令查看:

ip addr

重启网络服务:

sudo systemctl restart networking

或重启服务器:

sudo reboot

六、配置 Debian 软件源

在内网环境中,如果服务器无法访问公网,建议部署内网软件源。如果可以访问公网,可使用国内镜像源提升下载速度。

配置文件:/etc/apt/sources.list

以 Debian 12 为例,可以配置如下:

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware

更新索引:

sudo apt update

如果是完全离线环境,可以通过以下方式处理:

  1. 在有网机器上下载 .deb 包;
  2. 使用 apt-offline 同步依赖;
  3. 搭建内网 APT 镜像源;
  4. 使用 Nexus、aptly 或 debmirror 管理软件仓库。

七、主机名与 hosts 配置

合理的主机名有助于后续运维和服务识别。

设置主机名:

sudo hostnamectl set-hostname debian-app-01

配置文件:/etc/hosts

127.0.0.1       localhost
127.0.1.1       debian-app-01

192.168.10.20   debian-app-01
192.168.10.21   debian-db-01
192.168.10.22   debian-storage-01

验证:

hostname
hostname -f

八、创建普通运维用户

不建议长期使用 root 用户直接登录服务器。可以创建普通用户,并授予 sudo 权限。

adduser deploy
usermod -aG sudo deploy

验证 sudo 权限:

su - deploy
sudo whoami

如果返回 root,说明配置成功。


九、SSH 安全加固

SSH 是服务器远程管理入口,必须进行安全加固。

配置文件:/etc/ssh/sshd_config

Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
PermitEmptyPasswords no
X11Forwarding no
ClientAliveInterval 300
ClientAliveCountMax 2
MaxAuthTries 3
AllowUsers deploy

说明:

配置项 作用
Port 2222 修改默认 SSH 端口
PermitRootLogin no 禁止 root 远程登录
PasswordAuthentication no 禁止密码登录,仅允许密钥
AllowUsers deploy 仅允许指定用户登录
MaxAuthTries 3 限制认证失败次数

生成本地 SSH 密钥:

ssh-keygen -t ed25519 -C "deploy-key"

将公钥上传至服务器:

ssh-copy-id -p 2222 deploy@192.168.10.20

重启 SSH 服务:

sudo systemctl restart ssh

修改 SSH 配置前,建议保留一个已登录终端,确认新连接可用后再退出,避免配置错误导致无法登录。


十、防火墙配置

Debian 可以使用 ufw 简化防火墙管理。

安装 UFW:

sudo apt install -y ufw

开放 SSH、新的 Web 端口:

sudo ufw default deny incoming
sudo ufw default allow outgoing

sudo ufw allow 2222/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

如果应用服务只允许内网访问,例如 8080:

sudo ufw allow from 192.168.10.0/24 to any port 8080 proto tcp

启用防火墙:

sudo ufw enable
sudo ufw status verbose

UFW 配置示例

Status: active

To                         Action      From
--                         ------      ----
2222/tcp                   ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
8080/tcp                   ALLOW       192.168.10.0/24

十一、时间同步配置

生产环境中,时间同步非常重要。日志审计、证书校验、数据库事务、定时任务都依赖准确时间。

安装 chrony:

sudo apt install -y chrony

配置文件:/etc/chrony/chrony.conf

pool ntp.aliyun.com iburst
pool ntp.tencent.com iburst
pool cn.pool.ntp.org iburst

driftfile /var/lib/chrony/chrony.drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony

启动服务:

sudo systemctl enable chrony
sudo systemctl restart chrony

查看同步状态:

chronyc sources -v
timedatectl

十二、部署基础运行环境

根据应用类型不同,需要安装不同的运行环境。

1. 安装 OpenJDK

适用于 Java 项目:

sudo apt install -y openjdk-17-jdk
java -version

2. 安装 Node.js

可以使用 NodeSource 源安装:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt install -y nodejs
node -v
npm -v

3. 安装 Python 环境

sudo apt install -y python3 python3-pip python3-venv
python3 --version

4. 安装 Docker

Docker 是私有化部署中非常常见的方式,便于应用交付和环境隔离。

sudo apt install -y ca-certificates curl gnupg

sudo install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/debian/gpg \
  | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动 Docker:

sudo systemctl enable docker
sudo systemctl start docker
docker version

将用户加入 Docker 组:

sudo usermod -aG docker deploy

十三、Docker daemon 配置

为了提升镜像拉取速度、限制日志大小、优化运行环境,可以配置 Docker daemon。

配置文件:/etc/docker/daemon.json

{
  "registry-mirrors": [
    "https://docker.m.daocloud.io"
  ],
  "data-root": "/data/docker",
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "200m",
    "max-file": "5"
  },
  "exec-opts": [
    "native.cgroupdriver=systemd"
  ],
  "storage-driver": "overlay2"
}

创建 Docker 数据目录:

sudo mkdir -p /data/docker
sudo systemctl daemon-reload
sudo systemctl restart docker

查看配置是否生效:

docker info

十四、使用 Docker Compose 部署应用

以下示例展示一个典型的私有化部署服务,包括 Nginx、应用服务、MySQL、Redis。

目录规划

/data/app/
├── docker-compose.yml
├── nginx/
│   ├── conf.d/
│   │   └── app.conf
│   └── logs/
├── mysql/
│   └── data/
├── redis/
│   └── redis.conf
└── app/
    └── logs/

创建目录:

sudo mkdir -p /data/app/{nginx/conf.d,nginx/logs,mysql/data,redis,app/logs}
sudo chown -R deploy:deploy /data/app

配置文件:/data/app/docker-compose.yml

services:
  nginx:
    image: nginx:1.25
    container_name: private-nginx
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d
      - ./nginx/logs:/var/log/nginx
    depends_on:
      - app
    networks:
      - private-net

  app:
    image: registry.local/company/app:1.0.0
    container_name: private-app
    restart: always
    environment:
      APP_ENV: production
      DB_HOST: mysql
      DB_PORT: 3306
      DB_NAME: appdb
      DB_USER: appuser
      DB_PASSWORD: ChangeMe_StrongPassword
      REDIS_HOST: redis
      REDIS_PORT: 6379
    volumes:
      - ./app/logs:/app/logs
    depends_on:
      - mysql
      - redis
    networks:
      - private-net

  mysql:
    image: mysql:8.0
    container_name: private-mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: Root_ChangeMe_2025
      MYSQL_DATABASE: appdb
      MYSQL_USER: appuser
      MYSQL_PASSWORD: ChangeMe_StrongPassword
    volumes:
      - ./mysql/data:/var/lib/mysql
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_unicode_ci
    networks:
      - private-net

  redis:
    image: redis:7
    container_name: private-redis
    restart: always
    command: redis-server /etc/redis/redis.conf
    volumes:
      - ./redis/redis.conf:/etc/redis/redis.conf
    networks:
      - private-net

networks:
  private-net:
    driver: bridge

生产环境中,数据库密码应使用强密码,并通过 .env 文件或密钥管理系统统一管理,不建议直接写死在配置文件中。


十五、Redis 配置文件

配置文件:/data/app/redis/redis.conf

bind 0.0.0.0
port 6379
protected-mode yes
requirepass Redis_ChangeMe_2025

appendonly yes
appendfilename "appendonly.aof"

save 900 1
save 300 10
save 60 10000

maxmemory 512mb
maxmemory-policy allkeys-lru

loglevel notice
timeout 300
tcp-keepalive 60

说明:

  • requirepass:设置 Redis 密码;
  • appendonly yes:开启 AOF 持久化;
  • maxmemory-policy allkeys-lru:内存满时淘汰最近最少使用的 Key;
  • protected-mode yes:开启保护模式。

如果 Redis 仅在 Docker 内部网络访问,不建议将 6379 暴露到宿主机。


十六、Nginx 反向代理配置

Nginx 通常作为统一入口,负责静态资源、反向代理、HTTPS、访问日志、限流等功能。

配置文件:/data/app/nginx/conf.d/app.conf

server {
    listen 80;
    server_name app.example.local;

    access_log /var/log/nginx/app_access.log;
    error_log  /var/log/nginx/app_error.log;

    client_max_body_size 200m;

    location / {
        proxy_pass http://app:8080;
        proxy_http_version 1.1;

        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;

        proxy_connect_timeout 60s;
        proxy_send_timeout 120s;
        proxy_read_timeout 120s;
    }
}

如果需要 HTTPS,可以增加证书配置:

server {
    listen 443 ssl http2;
    server_name app.example.local;

    ssl_certificate     /etc/nginx/certs/app.crt;
    ssl_certificate_key /etc/nginx/certs/app.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    client_max_body_size 200m;

    location / {
        proxy_pass http://app:8080;

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

server {
    listen 80;
    server_name app.example.local;
    return 301 https://$host$request_uri;
}

私有化环境中的证书可以采用以下方式:

  1. 企业内部 CA 签发证书;
  2. 使用自签名证书;
  3. 如果域名可公网验证,可使用 Let’s Encrypt;
  4. 在内网 DNS 中配置业务域名解析。

十七、启动服务

进入部署目录:

cd /data/app
docker compose up -d

查看容器状态:

docker compose ps

查看日志:

docker compose logs -f app
docker compose logs -f nginx

测试访问:

curl -I http://127.0.0.1
curl -I http://app.example.local

如果内网没有 DNS,可以在客户端 hosts 文件中添加:

192.168.10.20 app.example.local

十八、数据库安全建议

数据库是私有化部署中的核心组件,必须重点保护。

建议:

  1. 数据库不要暴露公网;
  2. 仅允许应用服务器访问数据库;
  3. 使用复杂密码;
  4. 禁止 root 远程登录;
  5. 定期备份;
  6. 开启慢查询日志;
  7. 根据业务设置合理连接数;
  8. 定期检查数据库磁盘空间。

如果 MySQL 单独部署在宿主机上,可以参考以下配置。

配置文件:/etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
bind-address = 192.168.10.21
port = 3306

character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

max_connections = 500
wait_timeout = 28800
interactive_timeout = 28800

slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2

innodb_buffer_pool_size = 4G
innodb_log_file_size = 512M
innodb_flush_log_at_trx_commit = 1

default_authentication_plugin = mysql_native_password

十九、日志管理与 logrotate

生产环境中,日志如果不加限制,可能快速占满磁盘。因此需要配置日志轮转。

Nginx 日志轮转配置:/etc/logrotate.d/private-nginx

/data/app/nginx/logs/*.log {
    daily
    rotate 14
    missingok
    notifempty
    compress
    delaycompress
    dateext
    copytruncate
}

应用日志轮转配置:/etc/logrotate.d/private-app

/data/app/app/logs/*.log {
    daily
    rotate 30
    missingok
    notifempty
    compress
    delaycompress
    dateext
    copytruncate
}

手动测试:

sudo logrotate -d /etc/logrotate.d/private-app
sudo logrotate -f /etc/logrotate.d/private-app

二十、备份方案设计

私有化部署不能只关注上线,还必须关注数据恢复能力。建议至少备份以下内容:

类型 内容
数据库 MySQL、PostgreSQL、MongoDB
应用配置 docker-compose.yml、Nginx 配置、环境变量
文件数据 用户上传文件、附件、图片
证书 HTTPS 证书、私有 CA
脚本 部署脚本、备份脚本、恢复脚本

MySQL 备份脚本

文件:/data/scripts/backup_mysql.sh

#!/bin/bash

set -e

BACKUP_DIR="/data/backup/mysql"
DATE=$(date +"%Y%m%d_%H%M%S")

MYSQL_HOST="127.0.0.1"
MYSQL_PORT="3306"
MYSQL_USER="root"
MYSQL_PASSWORD="Root_ChangeMe_2025"
MYSQL_DATABASE="appdb"

mkdir -p "${BACKUP_DIR}"

docker exec private-mysql mysqldump \
  -u"${MYSQL_USER}" \
  -p"${MYSQL_PASSWORD}" \
  --databases "${MYSQL_DATABASE}" \
  --single-transaction \
  --routines \
  --triggers \
  --events \
  > "${BACKUP_DIR}/${MYSQL_DATABASE}_${DATE}.sql"

gzip "${BACKUP_DIR}/${MYSQL_DATABASE}_${DATE}.sql"

find "${BACKUP_DIR}" -name "*.sql.gz" -mtime +30 -delete

echo "Backup completed: ${BACKUP_DIR}/${MYSQL_DATABASE}_${DATE}.sql.gz"

授权:

chmod +x /data/scripts/backup_mysql.sh

配置定时任务:

crontab -e

添加:

0 2 * * * /data/scripts/backup_mysql.sh >> /data/backup/mysql/backup.log 2>&1

建议备份策略:

  • 本地保留 7-30 天;
  • 异地保留 30-180 天;
  • 重要系统每日备份;
  • 核心系统增加增量备份;
  • 定期进行恢复演练。

二十一、系统安全加固建议

除了 SSH 和防火墙,还应进行系统层面的安全加固。

1. 禁用不必要服务

查看服务:

systemctl list-unit-files --type=service

禁用无用服务:

sudo systemctl disable 服务名
sudo systemctl stop 服务名

2. 开启自动安全更新

安装:

sudo apt install -y unattended-upgrades apt-listchanges

配置:

sudo dpkg-reconfigure unattended-upgrades

配置文件:/etc/apt/apt.conf.d/50unattended-upgrades

Unattended-Upgrade::Origins-Pattern {
        "origin=Debian,codename=${distro_codename},label=Debian-Security";
};

Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "false";

3. 安装 fail2ban

Fail2ban 可以防止 SSH 暴力破解。

sudo apt install -y fail2ban

配置文件:/etc/fail2ban/jail.local

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
findtime = 10m
bantime = 1h

启动:

sudo systemctl enable fail2ban
sudo systemctl restart fail2ban

查看状态:

sudo fail2ban-client status sshd

二十二、监控与告警建议

私有化部署环境中,建议至少监控以下指标:

类型 指标
系统 CPU、内存、磁盘、网络
服务 Nginx、Docker、数据库、Redis
应用 接口耗时、错误率、QPS
数据库 连接数、慢查询、锁等待、磁盘使用
安全 SSH 登录失败、异常进程、端口变化

常见方案:

  1. Prometheus + Grafana
    适合中大型环境,扩展性强。

  2. Zabbix
    传统企业常用,图形化配置完善。

  3. Node Exporter
    用于采集 Linux 主机指标。

  4. cAdvisor
    用于采集 Docker 容器指标。

  5. Alertmanager / 企业微信 / 钉钉 / 邮件告警
    用于告警通知。


二十三、上线检查清单

上线前建议逐项检查:

  • [ ] Debian 系统已更新至稳定版本;
  • [ ] 静态 IP 已配置;
  • [ ] 主机名和 hosts 已配置;
  • [ ] SSH 禁止 root 登录;
  • [ ] SSH 已启用密钥认证;
  • [ ] 防火墙只开放必要端口;
  • [ ] Docker 日志大小已限制;
  • [ ] 数据库未暴露公网;
  • [ ] Nginx 反向代理正常;
  • [ ] HTTPS 证书有效;
  • [ ] 应用服务重启策略已配置;
  • [ ] 日志轮转已配置;
  • [ ] 数据库备份脚本已验证;
  • [ ] 定时备份任务已生效;
  • [ ] 监控和告警已接入;
  • [ ] 已完成一次恢复演练。

二十四、常见问题处理

1. Docker 容器无法访问外网

检查 DNS 配置:

cat /etc/resolv.conf
docker exec -it private-app cat /etc/resolv.conf

可以在 Docker daemon 中增加 DNS:

{
  "dns": ["223.5.5.5", "8.8.8.8"]
}

重启 Docker:

sudo systemctl restart docker

2. Nginx 访问返回 502

通常是后端应用未启动或端口不通。

排查:

docker compose ps
docker compose logs -f app
docker exec -it private-nginx curl http://app:8080

3. 磁盘空间不足

查看磁盘:

df -h
du -sh /data/*

清理 Docker 无用资源:

docker system df
docker image prune -a
docker volume prune

注意:清理前确认不会删除业务数据。

4. MySQL 容器启动失败

查看日志:

docker logs private-mysql

常见原因包括:

  • 数据目录权限错误;
  • 配置参数不兼容;
  • 端口冲突;
  • 磁盘空间不足;
  • 初始化密码不符合要求。

二十五、运维建议

为了让 Debian 私有化部署长期稳定运行,建议建立标准化运维流程:

  1. 配置变更必须记录
    包括系统配置、服务配置、数据库参数、Nginx 配置等。

  2. 部署操作脚本化
    尽量减少人工操作,提高可重复性。

  3. 重要配置纳入 Git 管理
    例如 Docker Compose、Nginx、Redis、备份脚本等。

  4. 定期巡检
    每周检查磁盘、内存、日志、备份、证书有效期。

  5. 分环境管理
    至少区分开发、测试、生产环境。

  6. 账号权限最小化
    不共享 root 密码,按人分配账号,离职及时回收权限。

  7. 建立恢复预案
    明确数据库恢复、文件恢复、整机迁移、服务回滚流程。


结语

Debian 私有化部署的核心并不只是“把系统装起来”,而是要围绕 稳定、安全、可维护、可恢复 四个目标进行系统设计。对于生产环境而言,操作系统、网络、防火墙、SSH、Docker、Nginx、数据库、日志、备份、监控都需要统一规划,任何一个环节薄弱,都可能影响整体服务可靠性。

本文提供了一套较完整的 Debian 私有化部署方案,并附带了静态 IP、APT 源、SSH、Docker、Docker Compose、Redis、Nginx、MySQL、logrotate、备份脚本、fail2ban 等常用配置文件。实际落地时,可以根据业务规模、网络环境、安全等级和运维能力进行裁剪与扩展。

如果是企业级生产环境,建议进一步引入自动化部署工具、堡垒机、集中日志平台、统一监控平台、漏洞扫描和灾备系统,让 Debian 私有化部署从“可运行”升级为“可长期稳定运营”。

目录结构
全文