在2核4GB内存的服务器上同时安装MySQL、Redis和Tomcat是可行的,但需要合理配置以避免资源竞争。以下是分步指南和优化建议:
1. 系统环境准备
- 操作系统:推荐Ubuntu 20.04/22.04 LTS或CentOS 7/8(轻量级发行版更佳)。
- 更新系统:
sudo apt update && sudo apt upgrade -y # Ubuntu sudo yum update -y # CentOS
2. 安装MySQL
步骤
# Ubuntu
sudo apt install mysql-server -y
sudo systemctl start mysql
sudo systemctl enable mysql
# CentOS
sudo yum install mysql-server -y
sudo systemctl start mysqld
sudo systemctl enable mysqld
配置优化
- 运行安全脚本:
sudo mysql_secure_installation - 编辑配置文件 (
/etc/mysql/my.cnf或/etc/my.cnf),添加:[mysqld] innodb_buffer_pool_size = 512M # 分配512MB内存给InnoDB(根据负载调整) max_connections = 50 # 限制连接数 skip_name_resolve = ON # 禁用DNS解析提升性能 - 重启MySQL:
sudo systemctl restart mysql
3. 安装Redis
步骤
# Ubuntu
sudo apt install redis-server -y
# CentOS
sudo yum install epel-release -y
sudo yum install redis -y
配置优化
- 编辑
/etc/redis/redis.conf:maxmemory 512mb # 限制内存使用 maxmemory-policy allkeys-lru # 内存不足时淘汰旧键 save "" # 禁用持久化(如需持久化,调整save规则) - 重启Redis:
sudo systemctl restart redis
4. 安装Tomcat
步骤
# 安装JDK(Tomcat依赖)
sudo apt install openjdk-11-jdk -y # Ubuntu
sudo yum install java-11-openjdk -y # CentOS
# 下载Tomcat(以10.0.x为例)
wget https://downloads.apache.org/tomcat/tomcat-10/v10.0.27/bin/apache-tomcat-10.0.27.tar.gz
tar -xzf apache-tomcat-*.tar.gz
sudo mv apache-tomcat-10.0.27 /opt/tomcat
配置优化
- 编辑
/opt/tomcat/conf/server.xml:<Connector port="8080" protocol="HTTP/1.1" maxThreads="100" # 减少线程数 minSpareThreads="10" connectionTimeout="20000" /> - 设置环境变量(可选):
echo 'export CATALINA_HOME="/opt/tomcat"' >> ~/.bashrc source ~/.bashrc - 启动Tomcat:
/opt/tomcat/bin/startup.sh
5. 资源分配建议
- MySQL:默认占用较多内存,建议预留 1.5GB。
- Redis:根据缓存需求分配 512MB~1GB。
- Tomcat:Java应用建议分配 1GB(通过JVM参数调整):
# 在 /opt/tomcat/bin/catalina.sh 中添加 export JAVA_OPTS="-Xms512m -Xmx1024m" - 系统预留:至少 512MB 给操作系统和其他进程。
6. 监控与调优
- 监控工具:
htop:查看实时资源占用。mysqladmin status:监控MySQL状态。redis-cli info:查看Redis状态。
- 日志检查:
- MySQL错误日志:
/var/log/mysql/error.log - Redis日志:
/var/log/redis/redis.log - Tomcat日志:
/opt/tomcat/logs/catalina.out
- MySQL错误日志:
7. 安全加固
- 防火墙:仅开放必要端口(如3306, 6379, 8080)。
sudo ufw allow 22/tcp # SSH sudo ufw allow 8080/tcp # Tomcat sudo ufw enable - MySQL/Redis:设置强密码,限制远程访问(如非必需)。
常见问题
- 内存不足:优先减少Tomcat的JVM堆大小或MySQL的缓冲池。
- 端口冲突:确保MySQL(3306)、Redis(6379)、Tomcat(8080)端口无冲突。
通过以上配置,2核4GB服务器可以平稳运行这三个服务,但高并发场景下可能需要升级配置或分离部署。
云服务器