http服务器---nginx
http服务器充当的是路由器。
主流的http服务器主要有apathe的http server 和nginx
nigix服务器的特点:千万级别的并发,静态资源(比放在tomcat中的服务器的访问效率要大很多)
nigix可以连接tomcat之外的任何服务器,因此,tomcat称为nigix的第三方服务器。
在nigix.conf配置文件中,upstream中的配置代表第三方服务器
nginx的upstream目前支持5种方式的分配
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
例如:
upstream bakend {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}
3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
例如:
upstream bakend {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backend {
server server1;
server server2;
fair;
}
5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
因为在nigix里面配置第三方服务器,访问nigix服务器的地址 localhost (80端口),将会直接跳转到第三方服务器
http服务器·与第三方服务器之间的通信是通过ajp协议,http服务器访问第三方服务器,通过下面的8009端口进行通信访问
http又叫反向代理服务器
因为客户端不知道自己在访问第三方服务器,第二点就是访问静态资源不需要访问第三方服务器,nigix服务器直接把资源放回给客户端
其实关于tomcat的改变就改server.xml两个地方,一个设置上面AJP的端口,另一个就是打开<cluster >这个配置文件
集群就引发一个问题,就是session共享的问题,一个tomcat启动之后对应一个不同的session,那么如何实现session的共享呢
首先在每个tomcat的配置文件中配置
在tomcatlib文件夹下面配制支持memecha的jar包,实现session共享是需要在每个tomcat下面配置相应的jar包