资源:点击打开链接
反向代理服务器:
(1)动静分离:
原因:比如说电商网站,如果图片显示和商品主要信息(商品名称,商品价格,商品描述)一起加载,加载会很慢,如果你刷新页面整个页面会重新加载,图片一起重新加载的话页面显示会很慢,所以需要动静分离,让图片单独显示
步骤:
配置直接利用nginx返回图片
1) 安装软件,绿色解压
2) 配置server,图片服务器,指定一个目录C:/jt-upload
配置文件:D:\javaenv\nginx-1.9.9\conf\nginx.conf
3) 启动nginx
4)原理
http://image.jt.com:80/images/2016/11/01/1477990651878396.jpg
把上面地址映射(翻译)
c:/jt-upload/images/…..
#图片服务器
server{
listen 80; 监听80端口
server_name image.jt.com; 监听请求是image.jt.com
location/ {
root c:\\jt-upload;
}
}
5)总结nginx监听一个域名和端口,如果满足这两个要求,转进来进行处理
(2)负载均衡
1)轮询
2)权重
3)扩展需求:
不需要这么多服务器支撑,这时能否支持?
支持,down
4)ip_hash
5)url_hash
(3)session共享
本质tomcat有多个,用户信息保存在某个tomcat的session中。其他的tomcat没有,如果链接发送到有的tomcat,自然没问题,但是如果发送到没有session的tomcat,只能让用户重新登录,这显然是不合理的。
请求是有两种的,一种是无状态的,一种是有状态的。
无状态不需要知道你是谁,它可以为任何的用户使用,可以放在任何一个tomcat上,集群可以动态的扩展(增加节点,减少节点)。有状态(session问题)
解决问题:
1) Tomcat session复制,这个方案只能在小型的集群中使用(10台以下的集群)
2) Tomcat session黏着
IP_HASH hash(ip+port)%n(n代表节点数) hash的问题,数据分布不是非常均匀(数据倾斜)可能造成大多数的链接落入到某一个服务器,资源不能公平利用。
URL_HASH hash(url)%n 需求第三方gz包
应用简单集群
3) 终极解决方案,shirosession manage,新的SSO替代它。(性能高redis+json)
(4)其他转发器有硬件的转发F5(20w) TCP协议,第四层交互传输层
nginx 第七层