杭州企业网站,888集团浏览器app,惠州网站网站建设,网站规划和建设方案一、负载均衡
1.相关概念
nginx的反向代理--负载均衡
负载均衡 将四层或者是七层的请求分配到多台后端的服务器上#xff0c;从而分担整个业务的负载。提高系统的稳定性#xff0c;也可以提供高可用#xff08;备灾#xff0c;其中的一台后端服务器如果发生故障…一、负载均衡
1.相关概念
nginx的反向代理--负载均衡
负载均衡 将四层或者是七层的请求分配到多台后端的服务器上从而分担整个业务的负载。提高系统的稳定性也可以提供高可用备灾其中的一台后端服务器如果发生故障不影响整体业务。
负载均衡的特点
根据算法把不同的请求分发到不同的服务器客户端访问的是代理地址相应也是代理服务器响应客户端并不了解后端服务器的情况可以提高安全性后端服务器是隐藏的负载均衡是有缓存的可以直接访问缓存提高响应的速度
2.负载均衡的算法
1round robin 轮询 rr: 负载均衡的默认算法请求轮流分配给后端服务器。 轮询算法适用于后端服务器处理能力相近规格相同2核4G硬盘空间都512G等的情况默认的算法可以不加。
2加权轮询 weight round robin 轮询的升级版给每个后端服务器赋予不同的权重。 处理能力更强的服务器设置更高的权重处理能力低的设置低权重。 权重用数字表示 高峰时间可以通过这个方法进行流量的优化。 适用于服务器处理能力差异比较大的情况。
3最少连接数 配合加权轮询一块使用最少连接数的算法可以将请求发送到当前连接比较少的服务器。 这种算法适用于后端服务器处理任务耗时不同的情况可以有效的避免所有的请求集中在处理能力更强的后端服务器上。
4ip_Hash 当客户端访问后端服务器根据客户端的ip地址使用hash算法计算出ip地址的hash值然后再把请求发送到相应的后端服务器。如果客户端访问的ip地址相同通过hash算法再一次的请求会被分配到上一次的服务器。保证会话的稳定。
负载均衡的会话保持------ ip_Hash 会话保持到期之后会话中断重新请求会重新计算hash值 A 192.168.206.60---- hash值---- B 中断 A 192.168.206.60---- hash值---- C 5url_hash 根据请求当中的URL地址来计算hash值如果客户端请求的URL地址相同客户端的请求会被分配到同一个服务器上。 www.baidu.com/test1 --------- hash值 --------- nginx1 www.baidu.com/test2 --------- hash值 --------- nginx2 后台服务器的数量发生变化会影响结果。
3.负载均衡的语法架构 配置流量分发主要是依靠代理服务器完成主要配置在代理服务器完成配置算法。 使用三台虚拟机模拟情景 nginx1 192.168.206.60 代理服务器 nginx2 192.168.206.70 后端服务器1 echo 707070 index.html nginx3 192.168.206.80 后端服务器2 echo 808080 index.html 客户端谷歌浏览器 #为了更直观的感受所以把后端服务端的页面显示内容设置成不一样的真实情况下服务端的页面应该都是一致的 1七层代理
upstream是nginx自带的。upstream模块仅支持http协议用来处理http的请求和响应。upstreaem只能写在http模块中。不能在server/location/全局模块中。没有特殊情况一般做七层代理。 *支持轮询
编辑代理服务器的/usr/local/nginx/conf/nginx.conf *支持权重轮询 *支持最少连接数 *支持ip_hash *支持url_hash 2基于域名的七层代理轮询 #nignx1、 nignx2、nignx3都需要配置/etc/hosts #配置如下 192.168.206.60 www.happy.com 192.168.206.70 www.zhangsan.com 192.168.206.80 www.lisi.com 3四层代理 stream模块不支持http协议仅支持tcp/udp协议处理数据包的流量分发。
四层代理需要写在全局模块当中。
安装nginx的时候必须要有支持streeam模块。 *支持轮询 *支持加权轮询 *支持最少连接数 *不支持ip_hash和url_hash 二、Tomcat
1.介绍 Tomcat是一个Java Web服务器它实现了Java Servlet、JavaServer PagesJSP、Java Expression LanguageEL和Java WebSocket技术规范。它主要用于运行Java Web应用程序提供HTTP服务。
java servlet: tomcat是一个servlet容器负责管理和执行java-servlet服务端的java程序。处理客户端的htpp的请求和响应。java server 服务端的配置pages 动态页面的技术 ------- java代码完成的 tomcat既可以作为以java代码为基础的动态页面也可以处理和转发动态请求。tomcat的并发能力很差适合小项目。
2.Tomcat的核心组件
1web容器 处理web的请求响应动态页面的展示
2jsp容器 解析index.jsp中的java代码转换为servlet的代码然后servlet编译执行 jsp是一种技术模板类似于html语言允许在html文件当中嵌入java的代码
3servlet容器 接收web容器的请求负责加载初始化执行和管理。
功能组件
connector接受外部的请求以及响应container包含了engine host context webapp 四个组件组成service包含了connector和containerengine引擎用来管理多个虚拟主机一个service只能有一个enginehost代表一个虚拟主机也可以理解为站点context对应的web应用webapp(wrapps)最终的封装器容器的最底层 index.jsp 3.Tomcat的配置
1Tomcat的目录结构 目录名称作用bin存放启动和关闭的脚本文件conftomcat的配置文件logstomcat的日志文件temp保存临时文件的目录webapps保存不同项目的应用目录work 工作目录
2Tomcat的配置文件 主要的配置文件有server.xml服务器配置、web.xmlWeb应用程序配置等。
4.安装Tomcat #安装依赖软件 apt -y install openjdk-8-jdk-headless java -version #查看java的版本 #解压压缩包改名并移动到/usr/local下 #进入/tomcat/bin/下启动程序 5.实例访问多个JSP Page #创建pages cd /usr/local/tomcat/webapps/ mkdir test1 test2 cd test1 vim index.jsp % page languagejava importjava.util.* pageEncodingUTF-8% html head titleJSP test1 page/title /head body % out.println(动态页面 1,http://www.test1.com);% /body /html cd test2 vim index.jsp #修改下面一行其余同上 % out.println(动态页面 2,http://www.test2.com);% #编辑主配置文件 cd /usr/local/tomcat/conf vim server.xml #在最下面的/html下面添加 以什么开头以什么结尾 Host namewww.test1.com appBasewebapps unpackWARstrue autoDeploytrue xmlValidationfalse xmlNamespaceAwarefalse Context docBase/usr/local/tomcat/webapps/test1 path reloadabletrue / /Host Host namewww.test2.com appBasewebapps unpackWARstrue autoDeploytrue xmlValidationfalse xmlNamespaceAwarefalse Context docBase/usr/local/tomcat/webapps/test2 path reloadabletrue / /Host #Host name主机名ww.test1.com #appBasewebapps web应用程序目录 #unpackWARstrue 是否对.war格式结尾文件进行展开默认配置 #autoDeploytrue tomcat在运行时会自动部署webapps里面对应的配置 #xmlValidationfalse是否验证xml文件的有效性 #xmlNamespaceAwarefalse”是否启动xml的命名空间 #Context docBase/usr/local/tomcat/webapps/test1 用来说明对应站点的工作的目录 #做域名映射 vim /etc/hosts 192.168.206.60 www.test1.com www.test2.com