在一台 2核4G内存 的服务器上安装 MySQL、Redis 和 Tomcat 是可行的,但需要注意资源分配和性能优化。这类配置适合中小型项目或开发/测试环境,不适合高并发生产场景。
下面是一个详细的部署建议和步骤:
✅ 一、系统要求与资源评估
| 服务 | 最小内存占用(空闲) | 峰值建议内存 | CPU 占用 |
|---|---|---|---|
| MySQL | ~300MB | 1GB+ | 中等 |
| Redis | ~50MB | 200MB~500MB | 低 |
| Tomcat | ~200MB (单实例) | 1GB+ (JVM堆) | 中高 |
总计:理想情况下至少需要 2.5~3.5GB 内存。
⚠️ 在 4GB 内存下运行三者是 紧张但可用 的,需合理调优 JVM 和数据库参数。
✅ 二、推荐操作系统
- Ubuntu 20.04 / 22.04 LTS
- CentOS 7 / 8 / Stream
- Debian 11+
推荐使用 Ubuntu,软件源丰富,易于管理。
✅ 三、安装步骤(以 Ubuntu 为例)
1. 更新系统
sudo apt update && sudo apt upgrade -y
2. 安装 MySQL
sudo apt install mysql-server -y
启动并设置开机自启:
sudo systemctl start mysql
sudo systemctl enable mysql
安全初始化(设置密码、移除匿名用户等):
sudo mysql_secure_installation
🔧 调优建议(/etc/mysql/mysql.conf.d/mysqld.cnf):
[mysqld] innodb_buffer_pool_size = 512M max_connections = 100 key_buffer_size = 64M保存后重启:
sudo systemctl restart mysql
3. 安装 Redis
sudo apt install redis-server -y
启用远程访问(可选):
编辑 /etc/redis/redis.conf:
bind 127.0.0.1 # 改为 0.0.0.0 可远程访问(注意防火墙)
protected-mode yes
requirepass yourpassword # 设置密码
启动 Redis:
sudo systemctl start redis-server
sudo systemctl enable redis-server
🔧 内存限制建议(防止OOM):
在redis.conf中添加:maxmemory 512mb maxmemory-policy allkeys-lru
4. 安装 Tomcat
下载最新稳定版(如 Tomcat 9 或 10):
cd /opt
sudo wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.86/bin/apache-tomcat-9.0.86.tar.gz
sudo tar -xvzf apache-tomcat-9.0.86.tar.gz
sudo mv apache-tomcat-9.0.86 tomcat9
设置权限:
sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat9 tomcat
sudo chown -R tomcat:tomcat /opt/tomcat9
创建 systemd 服务(/etc/systemd/system/tomcat.service):
[Unit]
Description=Apache Tomcat
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="CATALINA_HOME=/opt/tomcat9"
Environment="CATALINA_PID=/opt/tomcat9/temp/tomcat.pid"
ExecStart=/opt/tomcat9/bin/startup.sh
ExecStop=/opt/tomcat9/bin/shutdown.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
启用并启动:
sudo systemctl daemon-reexec
sudo systemctl enable tomcat
sudo systemctl start tomcat
🔧 JVM 调优(setenv.sh)
创建/opt/tomcat9/bin/setenv.sh:export CATALINA_OPTS="-Xms256m -Xmx1024m -XX:MaxMetaspaceSize=256m"
这将限制 Tomcat 使用最多 1GB 堆内存,避免挤占其他服务。
✅ 四、端口说明(默认)
| 服务 | 端口 | 说明 |
|---|---|---|
| MySQL | 3306 | 数据库 |
| Redis | 6379 | 缓存服务 |
| Tomcat | 8080 | Web 应用(HTTP) |
| Tomcat | 8009 | AJP(可关闭) |
确保防火墙开放所需端口:
sudo ufw allow 8080
sudo ufw allow 3306 # 生产慎开,建议内网或SSH隧道
sudo ufw allow 6379 # 同上,建议加密码+防火墙限制IP
sudo ufw enable
✅ 五、监控与优化建议
1. 查看内存使用
free -h
htop # 安装:sudo apt install htop
2. 避免 OOM(内存溢出)
- 设置 swap 分区(建议 1~2GB):
sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile # 添加到 /etc/fstab 永久生效 echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
3. 日志监控
- Tomcat:
/opt/tomcat9/logs/catalina.out - MySQL:
/var/log/mysql/error.log - Redis:
/var/log/redis/redis-server.log
✅ 六、适用场景总结
| 场景 | 是否推荐 | 说明 |
|---|---|---|
| 开发/测试环境 | ✅ 强烈推荐 | 完全够用 |
| 小型网站(日活<1k) | ✅ 推荐 | 注意调优 |
| 高并发生产环境 | ❌ 不推荐 | 建议升级配置或拆分服务 |
✅ 七、进阶建议(提升稳定性)
- 使用反向X_X Nginx:提高安全性,支持 HTTPS。
- 定期备份数据库:
mysqldump+ cron。 - 限制连接数:MySQL 和 Redis 都要设上限。
- 使用 supervisord 或 systemd 统一管理进程。
如有具体应用(如 Spring Boot + Redis 缓存 + MySQL),也可进一步优化配置。
需要我提供一键部署脚本吗?
ECLOUD博客