扩展:
一、反向代理
正向代理:代理服务器代替系统内部来访问外部网络的过程(系统访问外网)
反向代理:外部请求访问系统时通过代理服务器转发到内部服务器的过程(外网访问系统)
1、反向代理实例1
需求:
使用nginx反向代理,访问www.test.com直接跳转到127.0.0.1:8080【tomcat主页】
准备:
1)、安装tomcat
2)、安装java
3)、启动tomcat
4)、对外开放8080端口
5)、win下浏览器里访问tomcat页面
配置:
1)、修改win本地host文件,将www.test.com 映射到192.168.157.10
2)、配置nginx
效果:
2、反向代理实例2
需求:
根据访问路径跳转到不同端口的服务中。nginx监听端口为9001,访问http://127.0.0.1:9100/aa 跳转到8080端口;访问http://127.0.0.1:9100/bb 跳转到8081端口
准备:
1)、重复实例1 并把端口改为8081
2)、创建测试页面
3)、开放9001、8080、8081端口号
配置:
效果:
扩展:
location指令说明
语法:location [=|~|~*|^~] /uri/ {}
- = 表示精确匹配
- ^~ 表示uri以某个常规字符串开头,理解为匹配url路径即可
- ~ 表示区分大小写的正则匹配
- ~* 表示不区分大小写的正则匹配
- / 通用匹配,任何请求都会匹配到
二、负载均衡
负载均衡:通过某些方式把请求均匀分发到多个节点上,使系统中每个节点能够均匀的处理请求负载
需求:
在浏览器中输入一个地址,负载均衡效果,平均到8080和8081端口中
准备:
1)、准备两台tomcat服务器,一台8080,一台8081。参考反向代理实例
2)、在两台tomcat--webapps目录中,创建名称为demo3文件夹和index.html页面用于测试
配置:
效果:
扩展:
nginx分配服务器策略
1)、轮询【默认】
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除
2)、weight
指定轮询机率,weight和访问比率成正比,用于后端服务器性能不均的情况。权重越高分配的客户端越多。例:
3)、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session问题。例:
4)、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。例:
三、动静分离
动静分离:把动态资源和静态资源部署到不同的服务器上
准备:
1)、创建静态资源
在images里上传个图片
配置:
为了防止80端口重复,我这里就用的域名。然后在win下的host里添加 192.168.157.10 html.demo4.ga
效果:
四、配置高可用的集群
高可用:系统中部分节点失效时,其它节点能够接替它继续提供服务
集群:一个特定领域的软件部署在多台服务器上并作为一个整体提供一类服务
需求:
主nginx挂掉后,备nginx开始提供服务,不影响访问
准备:
1)、准备两台服务器(master10,master15)
2)、安装nginx、keepalived
配置:
配置keepalived,这里只展示了一个主机的配置
检测nginx脚本
启动nginx、keepalived
效果:
当master10停掉服务后也可以查看