Skip to content

环境准备

在部署学习追踪系统之前,需要准备相应的运行环境。本文档详细介绍环境准备步骤。

系统要求

操作系统

支持的系统

  • 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 postgresql

CentOS/RHEL

bash
# 安装 PostgreSQL
sudo yum install postgresql-server postgresql-contrib

# 初始化数据库
sudo postgresql-setup initdb

# 启动服务
sudo systemctl start postgresql
sudo systemctl enable postgresql

macOS

bash
# 使用 Homebrew 安装
brew install postgresql

# 启动服务
brew services start postgresql

PostgreSQL 配置

创建数据库用户

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 postgresql

Redis 环境

Redis 安装

Ubuntu/Debian

bash
# 安装 Redis
sudo apt install redis-server

# 启动服务
sudo systemctl start redis-server
sudo systemctl enable redis-server

CentOS/RHEL

bash
# 安装 Redis
sudo yum install redis

# 启动服务
sudo systemctl start redis
sudo systemctl enable redis

macOS

bash
# 安装 Redis
brew install redis

# 启动服务
brew services start redis

Redis 配置

基础配置

编辑 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 enable

CentOS/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

域名配置

  1. 购买域名并解析到服务器 IP
  2. 配置 A 记录指向服务器
  3. 等待 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 端口开放、防火墙配置正确。

下一步

环境准备完成后,请继续阅读 数据库配置 文档。

Released under the MIT License.