2核4g服务器安装mysql和redis和tomcat?

在一台 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) ✅ 推荐 注意调优
高并发生产环境 ❌ 不推荐 建议升级配置或拆分服务

✅ 七、进阶建议(提升稳定性)

  1. 使用反向X_X Nginx:提高安全性,支持 HTTPS。
  2. 定期备份数据库mysqldump + cron。
  3. 限制连接数:MySQL 和 Redis 都要设上限。
  4. 使用 supervisord 或 systemd 统一管理进程

如有具体应用(如 Spring Boot + Redis 缓存 + MySQL),也可进一步优化配置。

需要我提供一键部署脚本吗?

未经允许不得转载:ECLOUD博客 » 2核4g服务器安装mysql和redis和tomcat?