Tomcat+nginx负载均衡和动静分离

Nginx实现负载均衡和动静分离的原理

Nginx实现负载均衡 是通过反向代理实现Nginx服务器作为前端,Tomcat服务器作为后端,web页面请求由Nginx服务来进行转发 。 但是不是把所有的web请求转发,而是将静态页面请求Ncinx服务器自己来处理,动态页面请求,转发给后端的Tomcat服务器来处理。据了解,Tomcat是属于轻量级的应用服务器,可接受访问量可能会不足,所以我们需要多台Tomcat服务器。并且Tomcat并发量处理能力弱(约Nginx的六分之一),所以需要Nginx方向代理时,进行合理的调用分配。

Nginx实现负载均衡的主要配置项

upstream 服务池名 { }
作用:配置后端服务器池,以提供响应数据

proxy_pass http:// 服务池名
作用:配置将访问请求转发给后端服务器池的服务器处理

实验要求:

五台服务器分别部署

1.nginx代理服务器 20.0.0.10

2.静态页面和动态页面请求转发服务器

20.0.0.20 20.0.0.30

3.tomcat1 20.0.0.40

tomcat2 20.0.0.50

部署代理主机

复制代码
stream {                     
    upstream static {
        server 20.0.0.20:80 weight=1;
        server 20.0.0.30:80 weight=1;
    }
    server {
        listen 80;
        proxy_pass static;
    }
}
wq!
systemctl restart nginx

nginx2配置
vim nginx.conf


upstream tomcat {
    server 20.0.0.40:8080 weight=1;
    server 20.0.0.50:8080 weight=1;
}


location ~* \.jsp$ {
            proxy_pass http://tomcat;
            proxy_set_header HOST $host;
            proxy_set_header X-Real IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            #nginx作为代理服务器时,会把所有经过的机器的IP以及代理地址的IP全部记录下来    
}

nginx3配置:
vim nginx.conf
upstream tomcat {
    server 20.0.0.40:8080 weight=1;
    server 20.0.0.50:8080 weight=1;
}

location ~* \.jsp$ {
            proxy_pass http://tomcat;
            proxy_set_header HOST $host;
            proxy_set_header X-Real IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            #nginx作为代理服务器时,会把所有经过的机器的IP以及代理地址的IP全部记录下来    
}

tomcat主要配置

复制代码
mkdir /usr/local/tomcat/tomcat1/webapps/test /usr/local/tomcat/tomcat2/webapps/test
 
vim /usr/local/tomcat/tomcat1/webapps/test/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2 page</title>   #指定为 test2 页面
</head>
<body>
<% out.println("动态页面 2,http://www.test2.com");%>
</body>
</html>
 
 
vim /usr/local/tomcat/tomcat1/conf/server.xml
#删除前面的 HOST 配置
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
	<Context docBase="/usr/local/tomcat/tomcat1/webapps/test" path="" reloadable="true" />
</Host>
 
/usr/local/tomcat/tomcat1/bin/shutdown.sh 
/usr/local/tomcat/tomcat1/bin/startup.sh 
相关推荐
JAVA坚守者5 小时前
API 网关核心功能解析:负载均衡、容灾、削峰降级原理与实战摘要
gateway·负载均衡·微服务架构·容灾备份·api 网关·削峰降级·云原生技术
*郑*5 小时前
nginx配置反向代理后端
运维·nginx
JAVA坚守者6 小时前
Tomcat 日志体系深度解析:从访问日志配置到错误日志分析的全链路指南
tomcat·日志分析·故障排查·服务器运维·访问日志·错误日志·生产环境优化
猴子请来的逗比4896 小时前
tomcat搭建内网论坛
学习·tomcat
霍志杰8 小时前
网址为 http://xxx:xxxx/的网页可能暂时无法连接,或者它已永久性地移动到了新网址
nginx
Python ml8 小时前
Tomcat与纯 Java Socket 实现远程通信的区别
java·开发语言·tomcat
hnlucky10 小时前
《基于 Kubernetes 的 WordPress 高可用部署实践:从 MariaDB 到 Nginx 反向代理》
运维·数据库·nginx·云原生·容器·kubernetes·mariadb
铁锚11 小时前
一个WordPress连续登录失败的问题排查
java·linux·服务器·nginx·tomcat
生命不息战斗不止(王子晗)12 小时前
mybatis中${}和#{}的区别
java·服务器·tomcat
猴子请来的逗比48915 小时前
tomcat与nginx之间实现多级代理
java·nginx·tomcat