作为 Java 后端开发,Linux 服务器环境搭建是日常工作的基础技能。本文基于 CentOS 7 系统,纯干货整理 JDK 11、Nginx、Nacos、Redis、Docker 及 MySQL 的安装与配置步骤,全程命令可直接复制,新手也能轻松上手。
一、前置准备:更换 yum 源 + 开放端口
1. 更换国内 yum 源(阿里源)
默认 yum 源下载速度慢,优先替换为阿里云镜像:
bash
# 备份系统默认源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
# 下载阿里源(wget方式)
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 若无wget,用curl下载
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 清除缓存并重建
yum clean all
yum makecache
# 更新yum
yum update -y
2. 开放防火墙端口
Java 开发常用端口(如 8080、6379、3306 等)需提前开放,云服务器需先在控制台配置安全组。
bash
# 查看防火墙状态
firewall-cmd --state
# 启动防火墙(未启动时)
systemctl start firewalld.service
# 开放单个端口(永久生效)
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=8848/tcp --permanent
# 重启防火墙使配置生效
systemctl restart firewalld.service
# 查看已开放端口
firewall-cmd --list-ports
二、核心组件安装
1. JDK 11 安装(解压版)
推荐使用解压版 JDK,避免 rpm 安装的环境变量冲突问题。
bash
# 进入软件安装目录
cd /usr/local/
# 下载JDK 11(华为云镜像)
wget https://repo.huaweicloud.com/java/jdk/11+28/jdk-11_linux-x64_bin.tar.gz
# 解压
tar -zxvf jdk-11_linux-x64_bin.tar.gz
# 卸载系统自带openjdk(若有)
rpm -qa | grep java | xargs rpm -e --nodeps
# 配置环境变量
vim /etc/profile
# 在文件末尾添加以下内容
export JAVA_HOME=/usr/local/jdk-11
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
# 加载环境变量
source /etc/profile
# 验证安装
java -version
2. Nginx 安装
Nginx 是 Java 项目常用的反向代理服务器,需先安装依赖库。
bash
# 安装依赖
yum install -y gcc-c++ openssl openssl-devel pcre pcre-devel zlib zlib-devel
# 创建安装目录
mkdir /usr/local/nginx
# 下载并解压Nginx(以1.19.9为例)
wget http://nginx.org/download/nginx-1.19.9.tar.gz
tar -zxvf nginx-1.19.9.tar.gz
cd nginx-1.19.9
# 配置编译参数(指定安装路径+开启SSL)
./configure --prefix=/usr/local/nginx --with-http_ssl_module
# 编译安装
make && make install
# 启动Nginx
cd /usr/local/nginx/sbin
./nginx
# 验证:浏览器访问服务器IP,出现Nginx欢迎页即成功
# 重启Nginx命令
./nginx -s reload
3. Nacos 安装(单机版)
bash
# 进入安装目录
cd /usr/local/
# 下载Nacos 1.4.2
wget https://github.com/alibaba/nacos/releases/download/1.4.2/nacos-server-1.4.2.tar.gz
# 解压
tar -xvf nacos-server-1.4.2.tar.gz
# 调整JVM参数(小内存服务器必备)
vim /usr/local/nacos/bin/startup.sh
# 修改单机模式JVM参数为:
# JAVA_OPT="${JAVA_OPT} -Xms64m -Xmx64m -Xmn64m"
# 赋予脚本执行权限
chmod u+x /usr/local/nacos/bin/*.sh
# 单机启动
cd /usr/local/nacos/bin
./startup.sh -m standalone
# 验证启动
ps -ef | grep nacos
# 访问控制台:http://服务器IP:8848/nacos(默认账号密码:nacos/nacos)
4. Redis 安装
Redis 是 Java 项目常用的缓存中间件,需修改配置文件开启后台运行。
bash
# 进入安装目录
cd /usr/local/
# 下载Redis 5.0.4
wget http://download.redis.io/releases/redis-5.0.4.tar.gz
# 解压
tar -xzvf redis-5.0.4.tar.gz
cd redis-5.0.4
# 编译安装
make
cd src
make install PREFIX=/usr/local/redis
# 复制配置文件到安装目录
mkdir /usr/local/redis/etc
cp ../redis.conf /usr/local/redis/etc/
# 修改配置文件
vim /usr/local/redis/etc/redis.conf
# 1. 开启后台运行:daemonize no → yes
# 2. 关闭保护模式:protected-mode yes → no
# 3. 设置密码:requirepass 你的密码(可选)
# 4. 注释bind 127.0.0.1(允许远程访问)
# 启动Redis
cd /usr/local/redis/bin
./redis-server /usr/local/redis/etc/redis.conf
# 验证启动
ps -ef | grep redis
5. Docker 安装
Docker 可简化 MySQL、RocketMQ 等组件的部署,是开发环境的必备工具。
bash
# 查看系统内核版本(需3.10以上)
uname -r
# 安装Docker
yum install -y docker
# 启动Docker
systemctl start docker
# 设置开机自启
systemctl enable docker
# 配置阿里云镜像加速
vim /etc/docker/daemon.json
# 添加以下内容
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
# 重启Docker
systemctl restart docker
# 验证安装
docker -v
6. Docker 安装 MySQL 5.7
使用 Docker 安装 MySQL,避免系统环境依赖问题。
bash
# 拉取MySQL 5.7镜像
docker pull mysql:5.7
# 创建数据挂载目录
mkdir -p /usr/local/mysql/{conf,logs,data}
# 启动MySQL容器
docker run -p 3306:3306 --name mysql \
--privileged=true \
-v /usr/local/mysql/conf:/etc/mysql/conf.d \
-v /usr/local/mysql/logs:/logs \
-v /usr/local/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
# 进入容器
docker exec -it mysql /bin/bash
# 登录MySQL
mysql -uroot -proot
# 开启远程访问
use mysql;
update user set Host='%' where User='root';
flush privileges;
# 配置字符集(防止中文乱码)
vim /usr/local/mysql/conf/my.cnf
# 添加以下内容
[client]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
lower_case_table_names=1
# 重启MySQL容器
docker restart mysql
7. RocketMQ 集群搭建(双主双从)
RocketMQ 是 Java 项目核心的分布式消息队列,双主双从集群满足开发 / 测试环境的高可用需求。
7.1 环境准备
bash
# 开放RocketMQ所需端口
firewall-cmd --zone=public --add-port=9876/tcp --permanent # NameServer端口
firewall-cmd --zone=public --add-port=10911-10914/tcp --permanent # Broker端口
systemctl restart firewalld.service
# 验证JDK环境(RocketMQ依赖JDK)
java -version
7.2 下载安装
bash
# 进入安装目录
cd /usr/local/
# 下载RocketMQ 4.9.4(稳定版)
wget https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip
# 安装unzip(若未安装)
yum install -y unzip
# 解压并重命名
unzip rocketmq-all-4.9.4-bin-release.zip
mv rocketmq-all-4.9.4-bin-release rocketmq
# 调整JVM参数(小内存服务器必改,避免启动失败)
# 修改NameServer JVM参数
vim /usr/local/rocketmq/bin/runserver.sh
# 将原配置 -Xms4g -Xmx4g -Xmn2g 改为
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"
# 修改Broker JVM参数
vim /usr/local/rocketmq/bin/runbroker.sh
# 将原配置 -Xms4g -Xmx4g -Xmn2g 改为
JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m"
7.3 配置集群文件
bash
# 创建集群配置目录
mkdir -p /usr/local/rocketmq/conf/cluster
# 1. 编写broker-a(主节点)配置
cat > /usr/local/rocketmq/conf/cluster/broker-a.conf << EOF
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
namesrvAddr=127.0.0.1:9876
listenPort=10911
storePathRootDir=/usr/local/rocketmq/store/broker-a
storePathCommitLog=/usr/local/rocketmq/store/broker-a/commitlog
autoCreateTopicEnable=true
brokerPermission=6
EOF
# 2. 编写broker-a-s(从节点)配置
cat > /usr/local/rocketmq/conf/cluster/broker-a-s.conf << EOF
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=1
namesrvAddr=127.0.0.1:9876
listenPort=10912
storePathRootDir=/usr/local/rocketmq/store/broker-a-s
storePathCommitLog=/usr/local/rocketmq/store/broker-a-s/commitlog
autoCreateTopicEnable=true
brokerPermission=2
EOF
# 3. 编写broker-b(主节点)配置
cat > /usr/local/rocketmq/conf/cluster/broker-b.conf << EOF
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=0
namesrvAddr=127.0.0.1:9876
listenPort=10913
storePathRootDir=/usr/local/rocketmq/store/broker-b
storePathCommitLog=/usr/local/rocketmq/store/broker-b/commitlog
autoCreateTopicEnable=true
brokerPermission=6
EOF
# 4. 编写broker-b-s(从节点)配置
cat > /usr/local/rocketmq/conf/cluster/broker-b-s.conf << EOF
brokerClusterName=DefaultCluster
brokerName=broker-b
brokerId=1
namesrvAddr=127.0.0.1:9876
listenPort=10914
storePathRootDir=/usr/local/rocketmq/store/broker-b-s
storePathCommitLog=/usr/local/rocketmq/store/broker-b-s/commitlog
autoCreateTopicEnable=true
brokerPermission=2
EOF
7.4 启动集群
bash
cd /usr/local/rocketmq/bin
# 1. 启动NameServer
nohup sh mqnamesrv &
# 验证NameServer启动:日志出现"The Name Server boot success"
tail -f ~/logs/rocketmqlogs/namesrv.log
# 2. 启动Broker节点(按顺序执行)
nohup sh mqbroker -c /usr/local/rocketmq/conf/cluster/broker-a.conf &
nohup sh mqbroker -c /usr/local/rocketmq/conf/cluster/broker-a-s.conf &
nohup sh mqbroker -c /usr/local/rocketmq/conf/cluster/broker-b.conf &
nohup sh mqbroker -c /usr/local/rocketmq/conf/cluster/broker-b-s.conf &
# 3. 验证集群状态
export NAMESRV_ADDR=127.0.0.1:9876
sh mqadmin clusterList
# 输出显示2主2从节点即搭建成功
7.5 常用命令
bash
# 关闭NameServer
sh mqshutdown namesrv
# 关闭Broker
sh mqshutdown broker
# 发送测试消息
sh tools.sh org.apache.rocketmq.example.quickstart.Producer
# 消费测试消息
sh tools.sh org.apache.rocketmq.example.quickstart.Consumer
三、总结
- 本文覆盖 Java 开发核心环境:JDK 11、Nginx、Nacos、Redis、Docker、MySQL、RocketMQ,所有命令可直接复制执行。
- 小内存服务器需重点调整 Nacos、RocketMQ 的 JVM 参数,避免内存不足导致启动失败。
- 云服务器需同时配置安全组和防火墙端口,否则会出现服务可启动但无法远程访问的问题。
如果安装过程中遇到问题,欢迎在评论区留言交流!