3.Nginx+Tomcat负载均衡和动静分离群集

这篇具有很好参考价值的文章主要介绍了3.Nginx+Tomcat负载均衡和动静分离群集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Nginx+Tomcat负载均衡和动静分离群集

  • Nginx是-款非常优秀的HTTP服务器软件
    • 支持高达50 000个并发连接数的响应
    • 拥有强大的静态资源处理能力
    • 运行稳定
    • 内存、CPU等系统资源消耗非常低

Nginx作用

  • 目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,提升整个站点的负载并发能力

  • 正向代理:代理的是客户端,安装在客户端本机上

    • 正向代理类似一个跳板机,代理访问外部资源。
    • 正向代理的用途:
      1. 访问原来无法访问的资源,如google
      2. 可以做缓存,加速访问资源
      3. 对客户端访问授权,上网进行认证
      4. 代理记录用户访问记录(上网行为管理),也可以对外网隐藏用户信息。
        【从外网的角度,只有代理服务器获取资源的时候有一次记录,当代理告服务器不告诉网站时,外网就不知道这个请求的用户信息】
  • 反向代理:代理的是服务端,

  • 让用户无感知地浏览服务器资源(无论动容增加了多少台服务器,用户都无法感知,用户访问的永远是域名),并且让服务器更好的部署上线

    • 客户端是无感知代理服务器的存在的,访问者者并不知道自己访问的是一个代理。
    • 因为客户端不需要任何配置就可以访问。
##反向代理主要参数

upstream   服务池名{}       ##配置后端服务器池,以提供响应数据
proxy_pass   http://服务池名   ##配置将访问请求转发给后端服务器池的服务器处理

动静分离

服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源由Nginx提供服务,动态资源Nginx转发至后端

并发量:以10分钟有5000万用户平均每人访问2次为例,并发量为每秒(5000w*2)/(60*10)=16.7万,再double下,就说每秒25万并发量

吞吐量可以理解成带宽流量,以每个请求0.5KB大小,并发每秒25万,0.5/1024MB*250000=122MB*8bit=977Mbps

实验

七层反向代理nginx动静分离

名称 IP
tomcat服务器1 192.168.242.66:8080
tomcat服务器2 192.168.242.67:8080
nginx服务器 192.168.242.68
##在tomcat服务器中创建动态页面

cd /usr/local/tomcat/webapps/
mkdir test
cd test/

vim index.jsp


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>      #指定为 test1 页面
</head>
<body>
<% out.println("动态页面 1");%>
</body>
</html>
##nginx服务器设置


systemctl disable --now firewalld
setenforce 0


##yum安装nginx
cd /etc/yum.repos.d/
mkdir repo.bak
mv *.repo repo.bak

vim nginx.repo

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

yum clean all && yum makecache
yum -y install nginx
cd /etc/nginx/conf.d/
vim default.conf


##定义后端服务器组的名称和节点配置
upstream tomcat_server {
	server 192.168.242.66:8080 weight=1;
	server 192.168.242.67:8080 weight=1;
}



在server中配置
location ~* .*\.jsp$ {
	proxy_pass http://tomcat_server;
	#设置后端的Web服务器可以获取远程客户端的真实IP
	
	proxy_set_header HOST $host;
	##设定后端的Web服务器接收到的请求访问的主机名(域名或IP、端口),默认HOST的值为proxy_pass
	
	proxy_set_header X-Real-IP $remote_addr;
	##把$remote_addr赋值给X-Real-IP,来获取源IP
	
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	##在nginx 作为代理服务器时,设置的IP列表,会把经过的机器ip,代理机器ip都记录下来

}


location ~* .*\.jsp$ {
	proxy_pass http://tomcat_server;
	
	proxy_set_header HOST $host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
##创建静态界面
vim index.html

<html>
    <body>
        <hi>静态界面1</hi>
    </body>
</html>
##验证实现

访问 nginx 服务器地址    http://192.168.242.68/index.jsp

四层反向代理负载均衡

名称 IP
tomcat服务器1 192.168.242.66:8080
tomcat服务器2 192.168.242.67:8080
七层nginx服务器1 192.168.242.68
七层nginx服务器2 192.168.242.69
四次代理nginx服务器 192.168.242.70
##在nginx源码编译安装时,加载模块

./configure --with-stream


vim /usr/local/nginx/conf/nginx.conf

和http同等级:所以一般只在http上面一段设置
stream {
	
    upstream nginx_server {
		server 192.168.242.68:80 weight=1;
		server 192.168.242.69:80 weight=1;
    }
    
    server {
        listen 80;
          nginx_server;
    }
}




http {
      server {
        listen 8080;
......

测试静态页面效果
浏览器访问 http://192.168.242.68/test/index.html

测试负载均衡效果,不断刷新浏览器测试
浏览器访问 http://192.168.58.68/test/index.jsp

四层反向代理:基于IP+PORT实现的代理转发

四层反向代理:基于http、https、mail等七层应用协议实现的代理转发

Nginx 负载均衡模式:文章来源地址https://www.toymoban.com/news/detail-478846.html

  • rr 轮询 负载均衡模式:
    每个请求按时间顺序逐一分配到不同的后端服务器,如果超过了最大失败次数后(max_fails,默认1),在失效时间内(fail_timeout,默认10秒),该节点失效权重变为0,超过失效时间后,则恢复正常,或者全部节点都为down后,那么将所有节点都恢复为有效继续探测,一般来说rr可以根据权重来进行均匀分配。
  • 加权轮询:
    weight值越大,被分配到的访间请求概率越高,主要用于后端服务器性能不均匀的情况。
  • least_conn 最少连接:
    优先将客户端请求调度到当前连接最少的服务器。
  • ip_hash 负载均衡模式:
    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题,但是ip_hash会造成负载不均,有的服务请求接受多,有的服务请求接受少,所以不建议采用ip_hash模式,session 共享问题可用后端服务的 session 共享代替 nginx 的 ip_hash(使用后端服务器自身通过相关机制保持session同步)。
  • fair(第三方)负载均衡模式:
    按后端服务器的响应时间来分配请求,响应时间短的优先分配。
  • url_hash(第三方)负载均衡模式:
    基于用户请求的uri做hash。和ip_hash算法类似,是对每个请求按url的hash结果分配,使每个URL定向到同一个后端服务器,但是也会造成分配不均的问题,这种模式后端服务器为缓存时比较好。
    共享代替 nginx 的 ip_hash(使用后端服务器自身通过相关机制保持session同步)。
  • fair(第三方)负载均衡模式:
    按后端服务器的响应时间来分配请求,响应时间短的优先分配。
  • url_hash(第三方)负载均衡模式:
    基于用户请求的uri做hash。和ip_hash算法类似,是对每个请求按url的hash结果分配,使每个URL定向到同一个后端服务器,但是也会造成分配不均的问题,这种模式后端服务器为缓存时比较好。

到了这里,关于3.Nginx+Tomcat负载均衡和动静分离群集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • tomcat的负载均衡、动静分离(nginx联动)

    动静分离: 访问静态页面和动态页面分开 实现动态和静态页面负载均衡 实验5台虚拟机 一、动态负载均衡 3台虚拟机模拟: 代理服务器:30 tomcat动态页面:21、22 代理服务器:   proxy_pass http://tomcat;         proxy_set_header HOST $host;         proxy_set_header X-Real-IP $remote_a

    2024年02月08日
    浏览(33)
  • Tomcat多实例 + Tomcat负载均衡、动静分离(Nginx联动)

    Tomcat 多实例是指在同一台服务器上 运行多个独立的 Tomcat 实例 。 每个 Tomcat 实例都具有独立的配置文件、日志文件、应用程序和端口。 通过配置不同的端口和文件目录,可以实现同时运行多个独立的 Tomcat 服务器,每个服务器都可以独立处理用户的请求。 这样可以提高服务

    2024年02月09日
    浏览(27)
  • Nginx+Tomcat负载均衡(反向代理)、动静分离集群

    Nginx:正向代理(知道目标服务器) 反向代理(不知道目标服务器) Nginx配置反向代理主要参数 upstream服务池名{}(F5(硬件)和nginx反向代理原理一样) 配置后端服务池,以提供响应数据 proxy_pass http://服务池名 配置将访问请求转发给后端服务器池的服务器处理 定义:将工作任务

    2024年02月13日
    浏览(30)
  • Nginx+Tomcat实现负载均衡、动静分离集群部署

    1、安装好JDK 2、安装tomcat 3、配置tomcat环境变量 4、修改tomcat2中的server.xml文件,要求各tomcat实例配置不能有重复的端口号 5、修改各tomcat实例中的startup.sh和shutdown.sh文件,添加tomcat环境变量 6、启动各tomcat中的/bin/startup.sh 7、浏览器访问测试 1、Nginx应用 Nginx是一款非常优秀的

    2024年02月08日
    浏览(77)
  • Nginx+Tomcat负载均衡、动静分离实例详细部署

    ●rr 轮询 负载均衡模式: 每个请求按时间顺序逐一分配到不同的后端服务器,如果超过了最大失败次数后(max_fails,默认1),在失效时间内(fail_timeout,默认10秒),该节点失效权重变为0,超过失效时间后,则恢复正常,或者全部节点都为down后,那么将所有节点都恢复为有效

    2024年02月13日
    浏览(26)
  • Nginx&&Tomcat架构的动静分离和负载均衡

    目录 一、Tomcat的多实例部署 1.创建 kgc 和 benet 项目目录和文件 2.修改 Tomcat 主配置文件     3.客户端浏览器访问验证 二、Nginx+Tomcat负载均衡架构原理 2.1 Nginx负载均衡的主要配置 2.2 Nginx+Tomcat负载均衡的优点  三、Nginx+Tomcat负载均衡实验 1.部署Nginx 负载均衡器 2.部署2台Tomca

    2024年02月12日
    浏览(24)
  • 多实例部署和Nginx+Tomcat负载均衡、动静分离

    目录 一、Tomcat多实例部署 1.安装好 jdk  2.安装 tomcat  3.配置 tomcat环境变量  4.修改 tomcat2 中的 server.xml文件,要求各 tomcat 实例配置不能有重复的端口号 5.修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量  6.启动各 tomcat 中的 /bin/startup.sh  7.浏览器访问测

    2024年02月12日
    浏览(44)
  • 【Linux】Nginx+Tomcat负载均衡、动静分离、多实例部署

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 要求各 tomcat 实例配置不能有重复的端口号 第一个连接器默认监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。 第二个连接器默认监听8009端口,AJP端

    2024年02月09日
    浏览(53)
  • Tomcat多实例部署及nginx+tomcat的负载均衡和动静分离

    静:静态页面   动: 动态页面 分别可以对静态页面和动态页面发起不同的请求,会有不同的响应结果。 ngix反向代理——负均均衡——tomcat为后端服务器——web静态nginx——静态请求nginx——动态页面——tomcat Nginx实现负载均衡的原理 Nginx实现负载均衡是通过反向代理实现Ngi

    2024年02月13日
    浏览(35)
  • Nginx+Tomcat(多实例)实现动静分离和负载均衡(四层、七层)

    目录   一、Tomcat 多实例部署 二、反向代理的两种类型 三、Nginx+Tomcat实现负载均衡和动静分离(七层代理) 1.动静分离和负载均衡原理 2.实现方法  3.部署实例 (1)部署Nginx负载均衡服务器 (2)配置Tomcat多实例服务器1 (第一部分已完成) (3)配置Tomcat服务器2 (4)添加动

    2024年02月13日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包