Anolis 8.8 服务器环境搭建:从零搞定Nginx、Redis、JDK8和Tomcat9(附make/gcc依赖安装)
Anolis 8.8 服务器环境搭建实战指南构建高可用Java Web服务栈当你第一次接触Anolis OS这类国产化操作系统时可能会对如何快速搭建完整的Java Web运行环境感到困惑。本文将带你从零开始以任务流为主线逐步完成从系统初始化到Nginx、Redis、JDK8和Tomcat9的完整部署过程。1. 系统初始化与基础工具准备在开始安装各类服务前我们需要对全新的Anolis 8.8系统进行基础配置。这一步往往被许多新手忽略但却是后续所有工作的基石。首先更新系统并安装必要的开发工具链# 更新系统软件包 sudo dnf update -y # 安装基础开发工具 sudo dnf groupinstall Development Tools -y sudo dnf install -y wget tar gzip make cmake验证gcc和make是否安装成功gcc --version make --version提示Anolis OS基于RHEL生态使用dnf作为包管理器。如果你熟悉yum命令可以继续使用因为dnf是yum的下一代替代品命令格式基本兼容。接下来配置国内镜像源以加速软件下载。由于Anolis OS的特殊性建议使用官方推荐的镜像源# 备份原有repo文件 sudo cp /etc/yum.repos.d/AnolisOS-AppStream.repo /etc/yum.repos.d/AnolisOS-AppStream.repo.bak # 替换为国内镜像源以阿里云为例 sudo sed -e s|^mirrorlist|#mirrorlist|g \ -e s|^#baseurlhttp://mirrors.aliyun.com/anolis|baseurlhttp://mirrors.aliyun.com/anolis|g \ -i.bak \ /etc/yum.repos.d/AnolisOS-AppStream.repo2. JDK8环境部署与优化Java环境是运行Tomcat的基础。虽然Anolis OS可能预装了OpenJDK但很多企业应用仍然需要Oracle JDK8的支持。2.1 JDK8安装从Oracle官网下载JDK8的tar.gz包后执行以下步骤# 创建Java安装目录 sudo mkdir -p /usr/java cd /usr/java # 解压JDK请替换为你下载的实际文件名 sudo tar -zxvf jdk-8u361-linux-x64.tar.gz # 创建软链接方便版本管理 sudo ln -s jdk1.8.0_361 latest配置环境变量时建议修改/etc/profile.d/java.sh而非直接修改/etc/profilesudo tee /etc/profile.d/java.sh EOF export JAVA_HOME/usr/java/latest export JRE_HOME$JAVA_HOME/jre export CLASSPATH.:$JAVA_HOME/lib:$JRE_HOME/lib export PATH$PATH:$JAVA_HOME/bin:$JRE_HOME/bin EOF # 立即生效 source /etc/profile.d/java.sh验证安装java -version2.2 JDK优化配置生产环境中通常需要对JVM参数进行调整。创建jvm.options文件sudo tee /usr/java/latest/conf/jvm.options EOF -server -Xms2g -Xmx2g -XX:MetaspaceSize256m -XX:MaxMetaspaceSize512m -XX:UseG1GC -XX:MaxGCPauseMillis200 EOF3. Tomcat9部署与系统集成Tomcat作为Servlet容器需要与系统服务集成以实现更好的管理性。3.1 基础安装# 创建安装目录 sudo mkdir -p /usr/tomcat cd /usr/tomcat # 下载并解压Tomcat sudo wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.68/bin/apache-tomcat-9.0.68.tar.gz sudo tar -zxvf apache-tomcat-9.0.68.tar.gz sudo ln -s apache-tomcat-9.0.68 latest3.2 系统服务集成创建systemd服务单元文件sudo tee /etc/systemd/system/tomcat.service EOF [Unit] DescriptionApache Tomcat 9 Afternetwork.target [Service] Typeforking EnvironmentCATALINA_PID/usr/tomcat/latest/temp/tomcat.pid EnvironmentJAVA_HOME/usr/java/latest EnvironmentCATALINA_HOME/usr/tomcat/latest EnvironmentCATALINA_BASE/usr/tomcat/latest ExecStart/usr/tomcat/latest/bin/startup.sh ExecStop/usr/tomcat/latest/bin/shutdown.sh Restarton-failure [Install] WantedBymulti-user.target EOF启用并启动服务sudo systemctl daemon-reload sudo systemctl enable tomcat sudo systemctl start tomcat检查状态sudo systemctl status tomcat3.3 安全加固修改默认关闭端口和禁用管理界面sudo sed -i s/Connector port8005/Connector port8005 address127.0.0.1/ /usr/tomcat/latest/conf/server.xml sudo rm -rf /usr/tomcat/latest/webapps/{docs,examples,host-manager,manager}4. Redis部署与持久化配置Redis作为内存数据库需要特别注意持久化和内存管理配置。4.1 源码编译安装# 安装依赖 sudo dnf install -y systemd-devel # 下载并解压Redis cd /usr/local/src sudo wget https://download.redis.io/redis-stable.tar.gz sudo tar -zxvf redis-stable.tar.gz cd redis-stable # 编译安装 sudo make BUILD_WITH_SYSTEMDyes USE_SYSTEMDyes sudo make install PREFIX/usr/local/redis4.2 系统服务配置创建Redis配置文件sudo mkdir -p /etc/redis sudo cp redis.conf /etc/redis/6379.conf修改关键配置参数sudo sed -i s/^daemonize no/daemonize yes/ /etc/redis/6379.conf sudo sed -i s/^protected-mode yes/protected-mode no/ /etc/redis/6379.conf sudo sed -i s/^# maxmemory bytes/maxmemory 2gb/ /etc/redis/6379.conf sudo sed -i s/^# maxmemory-policy noeviction/maxmemory-policy allkeys-lru/ /etc/redis/6379.conf创建systemd服务文件sudo tee /etc/systemd/system/redis.service EOF [Unit] DescriptionRedis In-Memory Data Store Afternetwork.target [Service] Userredis Groupredis ExecStart/usr/local/redis/bin/redis-server /etc/redis/6379.conf ExecStop/usr/local/redis/bin/redis-cli shutdown Restartalways [Install] WantedBymulti-user.target EOF创建专用用户并启动服务sudo adduser --system --group --no-create-home redis sudo chown -R redis:redis /etc/redis sudo systemctl daemon-reload sudo systemctl enable redis sudo systemctl start redis5. Nginx编译安装与负载均衡配置Nginx作为前端代理需要编译安装以支持更多功能模块。5.1 依赖安装# 安装基础依赖 sudo dnf install -y pcre-devel zlib-devel openssl-devel # 下载最新PCRE cd /usr/local/src sudo wget https://sourceforge.net/projects/pcre/files/pcre2/10.40/pcre2-10.40.tar.gz sudo tar -zxvf pcre2-10.40.tar.gz cd pcre2-10.40 sudo ./configure sudo make sudo make install5.2 Nginx编译安装cd /usr/local/src sudo wget https://nginx.org/download/nginx-1.23.3.tar.gz sudo tar -zxvf nginx-1.23.3.tar.gz cd nginx-1.23.3 # 编译配置 sudo ./configure \ --prefix/usr/local/nginx \ --with-http_ssl_module \ --with-http_v2_module \ --with-http_realip_module \ --with-http_stub_status_module \ --with-pcre/usr/local/src/pcre2-10.40 sudo make sudo make install5.3 系统服务集成创建systemd服务文件sudo tee /etc/systemd/system/nginx.service EOF [Unit] DescriptionThe NGINX HTTP and reverse proxy server Afternetwork.target [Service] Typeforking PIDFile/usr/local/nginx/logs/nginx.pid ExecStartPre/usr/local/nginx/sbin/nginx -t ExecStart/usr/local/nginx/sbin/nginx ExecReload/usr/local/nginx/sbin/nginx -s reload ExecStop/bin/kill -s QUIT $MAINPID PrivateTmptrue [Install] WantedBymulti-user.target EOF启动并验证sudo systemctl daemon-reload sudo systemctl enable nginx sudo systemctl start nginx sudo systemctl status nginx5.4 反向代理配置配置Nginx作为Tomcat的反向代理sudo tee /usr/local/nginx/conf/conf.d/tomcat.conf EOF upstream tomcat_cluster { server 127.0.0.1:8080; keepalive 32; } server { listen 80; server_name yourdomain.com; location / { proxy_pass http://tomcat_cluster; proxy_http_version 1.1; proxy_set_header Connection ; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } EOF sudo systemctl restart nginx6. 环境联调与验证完成所有组件安装后需要进行集成测试确保各服务协同工作正常。6.1 服务状态检查# 检查所有服务状态 sudo systemctl status tomcat redis nginx # 验证端口监听 sudo ss -tulnp | grep -E 80|6379|80806.2 测试Redis连接# 使用redis-cli测试 redis-cli ping6.3 全链路测试创建一个简单的JSP应用测试全链路sudo tee /usr/tomcat/latest/webapps/ROOT/test.jsp EOF % page importredis.clients.jedis.Jedis % % Jedis jedis new Jedis(localhost); jedis.set(test, Hello Anolis!); String value jedis.get(test); % html body h1Redis Test: % value %/h1 h2Server Info: % application.getServerInfo() %/h2 /body /html EOF访问http://your-server-ip/test.jsp应该能看到Redis和Tomcat的集成信息。