架构

Nginx(Ubuntu)做反向代理配置负载均衡,Centos做Web应用服务器,第二台Centos做负载均衡
apache安装配置
配置 Ubuntu(Nginx)
1.Ubuntu 安装 Nginx
[^_^][root@ubuntu ~]# apt update
[^_^][root@ubuntu ~]# apt install nginx -y
2.配置 Nginx 反向代理
[^_^][root@ubuntu ~]# vim /etc/nginx/sites-available/default #编辑配置文件
3.测试配置并重启 Nginx
[^_^][root@ubuntu ~]# nginx -t # 检查配置文件语法是否正确
[^_^][root@ubuntu ~]# systemctl reload nginx
确保 CentOS 上的 Apache 允许来自 Nginx 的请求
检查 Apache 监听地址,防火墙放行 80 端口
[T_T][root@localhost ~]# netstat -tulnp | grep :80
tcp6 0 0 :::80 :::*
LISTEN 1262/httpd
[^_^][root@localhost ~]# sudo firewall-cmd --add-port=80/tcp
--permanent success
[^_^][root@localhost ~]# firewall-cmd --reload
success
测试从 Ubuntu 访问 CentOS Apache
192.168.100.22

验证反向代理效果
在任意客户端(如浏览器)访问 Ubuntu 的 IP

负载均衡
配置第二台 CentOS Apache
1.安装 Apache
[root@localhost ~]# yum install httpd -y
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl enable httpd
2.修改防火墙允许 80 端口
[root@localhost ~]# firewall-cmd --add-port=80/tcp --permanent
success
[root@localhost ~]# firewall-cmd --add-port=80/tcp --permanent
success
3.在 Ubuntu Nginx 上配置负载均衡
[^_^][root@ubuntu ~]# vim /etc/nginx/sites-available/default
upstream backend_servers {
# 默认采用轮询(round-robin)策略
server 192.168.100.22:80;
server 192.168.100.124:80;
# 可选:设置权重(例如让 20 的服务器处理更多请求)
# server 192.168.100.22:80 weight=3; # server 192.168.100.124:80 weight=1;
# 可选:健康检查(使用第三方模块如 nginx_upstream_check_module,或通过 max_fails + fail_timeout)
# server 192.168.100.22:80 max_fails=3 fail_timeout=30s; # server 192.168.100.124:80 max_fails=3 fail_timeout=30s;
}
server {
listen 80;
server_name _; # 或域名
location / {
proxy_pass http://backend_servers; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme;
}
}
4.客户端多次访问 Nginx 前端 IP
分别在两台 centos 上查看日志验证负载均衡
[T_T][root@localhost ~]# tail -f /usr/local/httpd/logs/access_log
#通过 源码编译安装,配置文件在 /usr/local/httpd/conf/httpd.conf,日志在
/usr/local/httpd/logs/ 下
[root@localhost ~]# tail -f /var/log/httpd/access_log
#通过 yum 安装的标准版本,配置文件在 /etc/httpd/conf/httpd.conf,日志默认在 /var/log/httpd/ 下
做完负载均衡后访问页面显示的是 Apache 默认测试页,而非之前部署的网站,这通常是因为负载均衡器将请求转发到了错误的 Apache 实例,或者后端的 Apache 服务并未提供您的网站内容


原因:第二台 centos 上的 apache 未更改测试页更改后再次测试


将java web应用到tomcat测试页
Apache(centos)
1.检查是否安装Java,没有就安装java环境
[root@localhost ~]# tail -f /var/log/httpd/access_log
#通过 yum 安装的标准版本,配置文件在 /etc/httpd/conf/httpd.conf,日志默认在 /var/log/httpd/ 下
[root@localhost ~]# java -version
openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)
2.安装tomcat
注:优先选择yum安装,因yum源过期这里手动官网安装
cd /opt
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.98/bin/apache-tomcat-9.0.98.tar.gz
tar -xzf apache-tomcat-9.0.98.tar.gz
3.安装maven打包
[^_^][root@localhost java-demo]# /yum install -y maven
4.将Java-demo.tar.gz打包成.war(一种 JAR 格式 的文件,用于打包和分发 Java Web 应用程序),将打包好后的.war复制到Tomcat,Tomcat 会自动解压并部署
[^_^][root@localhost ]#cd /home/yu/桌面/java-demo
mvn clean package
[^_^][root@localhost /home/yu/桌面/java-demo]# ls
db pom.xml src target

[^_^][root@localhost /home/yu/桌面/java-demo]# cp /home/yu/桌面/java-demo/target /opt/tomcat9/webapps/
5.启动tomcat,查看日志是否部署成功
[^_^][root@localhost ~]# /opt/tomcat9/bin/startup.sh
Using CATALINA_BASE: /opt/tomcat9
Using CATALINA_HOME: /opt/tomcat9
Using CATALINA_TMPDIR: /opt/tomcat9/temp
Using JRE_HOME: /
Using CLASSPATH: /opt/tomcat9/bin/bootstrap.jar:/opt/tomcat9/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
[^_^][root@localhost ~]# tail -f /opt/tomcat9/logs/catalina.out
25-Mar-2026 09:54:02.885 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/opt/tomcat9/webapps/examples]
25-Mar-2026 09:54:03.104 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/opt/tomcat9/webapps/examples]的部署已在[219]毫秒内完成
25-Mar-2026 09:54:03.105 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/opt/tomcat9/webapps/host-manager]
25-Mar-2026 09:54:03.128 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/opt/tomcat9/webapps/host-manager]的部署已在[23]毫秒内完成
25-Mar-2026 09:54:03.128 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/opt/tomcat9/webapps/manager]
25-Mar-2026 09:54:03.148 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/opt/tomcat9/webapps/manager]的部署已在[20]毫秒内完成
25-Mar-2026 09:54:03.148 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/opt/tomcat9/webapps/target]
25-Mar-2026 09:54:03.165 信息 [main] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/opt/tomcat9/webapps/target]的部署已在[17]毫秒内完成
25-Mar-2026 09:54:03.168 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"]
25-Mar-2026 09:54:03.195 信息 [main] org.apache.catalina.startup.Catalina.start [4808]毫秒后服务器启动
6.防火墙放行,允许8080端口(Tomcat 默认监听 8080 端口)
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
7.Ubuntu(nginx)编辑反向代理,检查,重启
upstream backend_servers {
# 默认采用轮询(round-robin)策略
server 192.168.100.22:8080;
server 192.168.100.124:80;
# 可选:设置权重(例如让 20 的服务器处理更多请求)
# server 192.168.100.22:80 weight=3;
# server 192.168.100.124:80 weight=1;
# 可选:健康检查(使用第三方模块如 nginx_upstream_check_module,或
通过 max_fails + fail_timeout)
# server 192.168.100.22:80 max_fails=3 fail_timeout=30s;
# server 192.168.100.124:80 max_fails=3 fail_timeout=30s;
}
server {
listen 80;
server_name 192.168.100.212; # 或域名
location / {
proxy_pass http://backend_servers;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
charset utf-8;
proxy_set_header Accept-Encoding "";
}
}
nginx -t
systemctl reload nginx
8.将java web替换掉tomcat测试页,重启tomcat,查看验证
cp /home/yu/桌面/java-demo/target/webapps/ROOT/
rm -rf*
cd -
ls
unzip ly-simple-tomcat-0.0.1-SNAPSHOT.war
cd /home/yu/桌面/java-demo/target /opt/tomcat9/bin # 手动解压安装
./shutdown.sh
./startup.sh
