环境准备
在部署学习追踪系统之前,需要准备相应的运行环境。本文档详细介绍环境准备步骤。
系统要求
操作系统
支持的系统
- Linux: Ubuntu 20.04+, CentOS 8+, Debian 11+
- Windows: Windows Server 2019+, Windows 10+
- macOS: macOS 10.15+
推荐配置
- CPU: 4 核心或更高
- 内存: 8GB 或更高
- 存储: 50GB 可用空间
- 网络: 稳定的互联网连接
软件环境
Node.js 环境
bash
# 检查 Node.js 版本
node --version # 需要 18.0.0 或更高
# 检查 npm 版本
npm --version # 需要 8.0.0 或更高安装 Node.js
bash
# Ubuntu/Debian
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# CentOS/RHEL
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
sudo yum install -y nodejs
# macOS
brew install node@18
# Windows
# 从 https://nodejs.org/ 下载安装包数据库环境
PostgreSQL 安装
Ubuntu/Debian
bash
# 更新包列表
sudo apt update
# 安装 PostgreSQL
sudo apt install postgresql postgresql-contrib
# 启动服务
sudo systemctl start postgresql
sudo systemctl enable postgresql
# 检查状态
sudo systemctl status postgresqlCentOS/RHEL
bash
# 安装 PostgreSQL
sudo yum install postgresql-server postgresql-contrib
# 初始化数据库
sudo postgresql-setup initdb
# 启动服务
sudo systemctl start postgresql
sudo systemctl enable postgresqlmacOS
bash
# 使用 Homebrew 安装
brew install postgresql
# 启动服务
brew services start postgresqlPostgreSQL 配置
创建数据库用户
bash
# 切换到 postgres 用户
sudo -u postgres psql
# 创建数据库用户
CREATE USER study_tracker WITH PASSWORD 'your_secure_password';
# 创建数据库
CREATE DATABASE study_tracker OWNER study_tracker;
# 授权
GRANT ALL PRIVILEGES ON DATABASE study_tracker TO study_tracker;
# 退出
\q配置连接
编辑 PostgreSQL 配置文件:
bash
# Ubuntu/Debian
sudo nano /etc/postgresql/*/main/postgresql.conf
# CentOS/RHEL
sudo nano /var/lib/pgsql/data/postgresql.conf修改以下配置:
yaml
# 监听地址
listen_addresses = '*'
# 端口
port = 5432
# 最大连接数
max_connections = 100配置访问权限:
bash
# 编辑 pg_hba.conf
sudo nano /etc/postgresql/*/main/pg_hba.conf
# 添加以下行
host study_tracker study_tracker 0.0.0.0/0 md5重启 PostgreSQL:
bash
sudo systemctl restart postgresqlRedis 环境
Redis 安装
Ubuntu/Debian
bash
# 安装 Redis
sudo apt install redis-server
# 启动服务
sudo systemctl start redis-server
sudo systemctl enable redis-serverCentOS/RHEL
bash
# 安装 Redis
sudo yum install redis
# 启动服务
sudo systemctl start redis
sudo systemctl enable redismacOS
bash
# 安装 Redis
brew install redis
# 启动服务
brew services start redisRedis 配置
基础配置
编辑 Redis 配置文件:
bash
# Ubuntu/Debian
sudo nano /etc/redis/redis.conf
# CentOS/RHEL
sudo nano /etc/redis.conf修改关键配置:
yaml
# 绑定地址
bind 127.0.0.1
# 端口
port 6379
# 密码(可选)
# requirepass your_secure_redis_password
# 持久化
save 900 1
save 300 10
save 60 10000
# 最大内存
maxmemory 256mb
maxmemory-policy allkeys-lru重启 Redis:
bash
sudo systemctl restart redis-server测试连接
bash
# 测试 Redis 连接
redis-cli ping
# 应该返回 PONG网络环境
防火墙配置
Ubuntu/Debian (UFW)
bash
# 安装 UFW
sudo apt install ufw
# 允许 SSH
sudo ufw allow ssh
# 允许应用端口
sudo ufw allow 3001
# 允许数据库端口(如果需要远程访问)
sudo ufw allow 5432
# 启用防火墙
sudo ufw enableCentOS/RHEL (Firewalld)
bash
# 启动防火墙
sudo systemctl start firewalld
sudo systemctl enable firewalld
# 允许端口
sudo firewall-cmd --permanent --add-port=3001/tcp
sudo firewall-cmd --permanent --add-port=5432/tcp
# 重新加载
sudo firewall-cmd --reload域名和 SSL
域名配置
- 购买域名并解析到服务器 IP
- 配置 A 记录指向服务器
- 等待 DNS 解析生效
SSL 证书
bash
# 安装 Certbot
sudo apt install certbot
# 获取 SSL 证书
sudo certbot certonly --standalone -d yourdomain.com
# 证书位置
# /etc/letsencrypt/live/yourdomain.com/fullchain.pem
# /etc/letsencrypt/live/yourdomain.com/privkey.pem系统优化
系统参数优化
文件描述符限制
编辑系统限制:
bash
sudo nano /etc/security/limits.conf添加以下行:
* soft nofile 65536
* hard nofile 65536内核参数优化
编辑内核参数:
bash
sudo nano /etc/sysctl.conf添加以下配置:
yaml
# 网络优化
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 5000
net.ipv4.tcp_max_syn_backlog = 65535
# 内存优化
vm.swappiness = 10
vm.dirty_ratio = 15
vm.dirty_background_ratio = 5应用配置:
bash
sudo sysctl -p性能监控
安装监控工具
bash
# 安装 htop
sudo apt install htop
# 安装 iotop
sudo apt install iotop
# 安装 nethogs
sudo apt install nethogs系统监控脚本
创建监控脚本:
bash
#!/bin/bash
# 系统资源监控
echo "=== 系统资源监控 ==="
echo "CPU 使用率:"
top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1
echo "内存使用率:"
free | grep Mem | awk '{printf("%.2f%%", $3/$2 * 100.0)}'
echo "磁盘使用率:"
df -h | grep /dev/vda1 | awk '{print $5}'
echo "网络连接数:"
netstat -an | wc -l环境验证
验证脚本
创建环境验证脚本:
bash
#!/bin/bash
# 环境验证脚本
echo "=== 环境验证 ==="
# 检查 Node.js
echo "检查 Node.js..."
node --version
npm --version
# 检查 PostgreSQL
echo "检查 PostgreSQL..."
sudo systemctl status postgresql
# 检查 Redis
echo "检查 Redis..."
sudo systemctl status redis-server
redis-cli ping
# 检查端口
echo "检查端口..."
netstat -tlnp | grep :3001
netstat -tlnp | grep :5432
netstat -tlnp | grep :6379
# 检查磁盘空间
echo "检查磁盘空间..."
df -h
# 检查内存
echo "检查内存..."
free -h运行验证
bash
# 给脚本执行权限
chmod +x verify_environment.sh
# 运行验证
./verify_environment.sh常见问题
Q: PostgreSQL 连接失败怎么办?
A: 检查 PostgreSQL 服务状态、配置文件、防火墙设置和用户权限。
Q: Redis 无法启动怎么办?
A: 检查 Redis 配置文件语法、端口占用和权限设置。
Q: 如何优化系统性能?
A: 调整内核参数、增加内存、使用 SSD 存储、优化网络配置。
Q: SSL 证书申请失败怎么办?
A: 确保域名解析正确、80 端口开放、防火墙配置正确。
下一步
环境准备完成后,请继续阅读 数据库配置 文档。