ngnix

资源:点击打开链接

反向代理服务器:

(1)动静分离:

原因:比如说电商网站,如果图片显示和商品主要信息(商品名称,商品价格,商品描述)一起加载,加载会很慢,如果你刷新页面整个页面会重新加载,图片一起重新加载的话页面显示会很慢,所以需要动静分离,让图片单独显示

步骤:

配置直接利用nginx返回图片

1)  安装软件,绿色解压

2)  配置server,图片服务器,指定一个目录C:/jt-upload

配置文件:D:\javaenv\nginx-1.9.9\conf\nginx.conf

3)  启动nginx

ngnix

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;

                   }

         }

ngnix 

5)总结nginx监听一个域名和端口,如果满足这两个要求,转进来进行处理

(2)负载均衡

1)轮询

ngnix

2)权重

ngnix

3)扩展需求:

不需要这么多服务器支撑,这时能否支持?

支持,down

ngnix

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 第七层