1.反向代理
1.1 反向代理概念
反向代理服务器位于用户与指标服务器之间,然而对于用户而言,反向代理服务器就相当于指标服务器,即用户间接拜访反向代理服务器就能够取得指标服务器的资源。同时,用户不须要晓得指标服务器的地址,也毋庸在用户端作任何设定。反向代理服务器通常可用来作为Web减速,即应用反向代理作为Web服务器的前置机来升高网络和服务器的负载,进步拜访效率。
特点:
1.反向代理服务器是位于用户和指标服务器之间的.
2.用户认为反向代理服务器就是实在的服务器. 用户不晓得实在的服务器到底是谁.
3.反向代理服务器爱护服务端信息,称之为服务器端代理.
代理存在的起因: 用户因为某种原因无奈间接拜访指标服务器,实现指定的性能.
1.2 正向代理
1.2.1 正向代理介绍
正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器获得内容,客户端向代理发送一个申请并指定指标(原始服务器),而后代理向原始服务器转交申请并将取得的内容返回给客户端。客户端能力应用正向代理。
特点:
1.代理服务器位于用户与服务器之间
2.用户申请时,十分明确指标服务器到底是谁. 服务器不分明到底是谁拜访的我.认为是代理服务器间接发动的申请.
3.正向代理服务器爱护了用户的信息,所以称之为客户端代理.
1.2.2 对于代理总结
1.反向代理是服务器端代理. 只有用户拜访服务器,其实都是反向代理机制. 实现业务调用
2.正向代理是客户端代理.次要用户上网就就应用正向代理 实现的是网络通信头 网穿工具 夜神模拟器/花生壳
2.Nginx
2.1 Nginx服务器介绍
2.2 nginx介绍
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协定下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中体现较好,中国大陆应用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
特点:
1.占用内存少 2M tomcat启动 200M左右
2.并发能力强 5万/秒 理论2-4万/秒
2.3 Nginx装置应用
1).启动Nginx nginx启动会生成2个过程项
1.主过程 次要的作用是提供反向代理服务的. 在敞开主过程 内存大的
2.守护过程 避免主过程意外敞开的. 先敞开守护
2.4 Nginx命令
工作目录阐明:要求在nginx.exe所在的根目录中执行
1.启动命令
start nginx Linux ./nginx
2.重名命令
nginx -s reload Linux: ./nginx -s reload
3.敞开命令
nginx -s stop Linux: ./nginx -s stop
2.5 Nginx反向代理原理
入门案例阐明: http://localhost:80
3.实现图片回显
3.1 需要
实现图片地址的代理,将图片地址转向到具体的磁盘门路.
URL地址: http://image.jt.com/2020/12/0...
本地磁盘地址:
E:images/2020/12/02/7d7179100d1e423abc2546e77743947c.png
3.2 配置nginx
#1.配置图片代理 server { listen 80; server_name image.jt.com; location / { root E:\images; } }
3.3 编辑HOSTS文件
作用:实现本地域名与IP地址的映射
门路:
内容:
#@SwitchHosts! {"url": null, "icon_idx": 0, "title": "u5f53u524du7cfbu7edf hosts"}# 京淘配置 #192.168.126.129 image.jt.com#192.168.126.129 manage.jt.com#IP 域名 映射关系127.0.0.1 image.jt.com127.0.0.1 manage.jt.com127.0.0.1 www.jt.com127.0.0.1 sso.jt.com127.0.0.1 localhost#bug 丢最初一个字母问题
3.4 图片回显的原理
4.实现域名代理
4.1 需要阐明
需要:要求用户通过 http://manage.jt.com 拜访localhost:8091的服务器.
实现形式: 利用反向代理机制实现
4.2 配置nginx
#2.配置后端服务器 manage.jt.com:80 localhost:8091 server { listen 80; server_name manage.jt.com; location / { #发动url申请地址 proxy_pass http://localhost:8091; } }
5.Nginx实现tomcat集群部署
5.1 集群搭建原理
5.2 动静展示端口号
package com.jt.controller;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class PortController { @Value("${server.port}") private int port; @RequestMapping("/getPort") public String getPort(){ return "以后拜访端口号:"+port; }}
5.3 我的项目打包
阐明:因为须要筹备3台tomcat服务器. 所以端口号顺次8081/8082/8083
cmd我的项目运行指令:java -jar 8081.war
5.4 Nginx 负载平衡
5.4.1 轮询策略
阐明:依据配置文件的程序,顺次拜访服务器.
#2.配置后端服务器 manage.jt.com:80 localhost:8091 server { listen 80; server_name manage.jt.com; location / { #发动url申请地址 #proxy_pass http://localhost:8091; proxy_pass http://jtWindows; } }#3.配置tomcat服务器集群 默认:轮询策略 upstream jtWindows { server 127.0.0.1:8081; server 127.0.0.1:8082; server 127.0.0.1:8083; }
5.4.2 权重策略
阐明:让性能更优的服务器解决更多的用户申请.
#3.配置tomcat服务器集群 默认:轮询策略,2.权重 upstream jtWindows { server 127.0.0.1:8081 weight=6; server 127.0.0.1:8082 weight=3; server 127.0.0.1:8083 weight=1; }
5.4.3 IPHASH策略
需要:须要将用户与某台服务器进行绑定.
#3.配置tomcat服务器集群 默认:轮询策略,2.权重,3.iphash upstream jtWindows { ip_hash; server 127.0.0.1:8081 weight=6; server 127.0.0.1:8082 weight=3; server 127.0.0.1:8083 weight=1; }
毛病:
1.容易造成负载不均景象.
2.如果IP地址与用户绑定在一起,如果tomcat服务器宕机,则间接影响用户.
IPhash实用场景:个别进行压力测试时应用.
6.Nginx 高级属性
6.1 down属性
阐明:如果服务器宕机,则能够通过down属性进行标识,被标识的服务器则不会再为用户提供反对.
#3.配置tomcat服务器集群 默认:轮询策略,2.权重,3.iphash upstream jtWindows { #ip_hash; server 127.0.0.1:8081 weight=6 down; server 127.0.0.1:8082 weight=3; server 127.0.0.1:8083 weight=1; }
6.2 backup 属性
备用机的设定.个别条件下备用机不干活的,然而当主时机忙时,或者主机宕机时,才会拜访备用机.
#3.配置tomcat服务器集群 默认:轮询策略,2.权重,3.iphash upstream jtWindows { #ip_hash; server 127.0.0.1:8081 weight=6 down; server 127.0.0.1:8082 weight=3; server 127.0.0.1:8083 weight=1 backup; }
6.3 tomcat服务器高可用
阐明:如果人为的增加down属性 效率不高, 是否主动的检测服务器是否宕机,如果宕机,是否主动的标识为down.
#3.配置tomcat服务器集群 默认:轮询策略,2.权重,3.iphash #max_fails=1设定最大的失败次数。如果超过最多次数则示意为down #fail_timeout=60s 生效的超时工夫 60s upstream jtWindows { #ip_hash; server 127.0.0.1:8081 max_fails=1 fail_timeout=60s; server 127.0.0.1:8082 max_fails=1 fail_timeout=60s; server 127.0.0.1:8083 max_fails=1 fail_timeout=60s; }