JMeter性能测试基础实战视频教程
14195 人在学
Session:在计算机中,尤其是在网络应用中,称为"会话控制"。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
Nginx反向代理实现负载均衡以及session共享
随着社会的发展和科技水平的不断提高,互联网在人们日常生活中扮演着越来越重要的角色,同时网络安全,网络可靠性等问题日益突出。传统的单体服务架构已不能满足现代用户需求。随之而来的就是各种分布式/集群式的服务架构模式。实现多台服务共同提供服务。最常见的就是Nginx代理技术。
对于用户的请求到达nginx代理服务器后,根据不同的策略被转发到不同的server上,以实现负载均衡。
使用多个Tomcat实例,配置server.XML
<!--Connector中使用线程池-->
修改:不同的实例中使用不同的端口号
<1>-----------------------------------------------------------------------------------------------------------------------------
<Connectorexecutor="tomcatThreadPool"port="8081"protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout="30000"redirectPort="8443"URIEncoding="UTF-8"enableLookups="false"
connectionUploadTimeout="150000"acceptCount="300"keepAliveTimeout="120000"/>
<Connectorport="8009"protocol="AJP/1.3"redirectPort="8443"/>
<2>-----------------------------------------------------------------------------------------------------------------------------
<Connectorexecutor="tomcatThreadPool"port="8082"protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout="30000"redirectPort="8443"URIEncoding="UTF-8"enableLookups="false"
connectionUploadTimeout="150000"acceptCount="300"keepAliveTimeout="120000"/>
<Connectorport="8019"protocol="AJP/1.3"redirectPort="8443"/>
...
在环境变量中配置多个CATALINA_HOME,分别对应各自的tomcat实例,还需修改catalina.bat和startup.bat中各自的CATALINA_HOME的名字和环境变量中的要对应。
部署好项目。
配置Nginx:在。。Nginx/conf/nginx.conf,打开并配置nginx.conf
#tomcat集群配置
upstreammyapp{
#myapp是集群的名称,低版本(8.5.31之前)的tomcat会对该名称构成的转发地址进行校验,不能存在下划线“_”等特殊字符,否则会产生400错误;
#weight根据权重值的大小决定访问几率;
#ip_hash根据客户端ip地址的hash值分配将要转发的server(由于此ip是固定的,可以实现session共享。另外使用redis,springSession也可以实现session共享机制);
#fair根据server的响应速度快慢分配;
#url_hash;
#默认采用轮询方式
server127.0.0.1:8081;#tomcat1配置
server127.0.0.1:8082;
#server127.0.0.1:8083weight=6;
#server192.168.1.108:88weight=3;#tomcat2配置
}
server{
listen9090;#监听端口
server_namelocalhost;#nginx服务的ip地址
location/{
proxy_passhttp://myapp;
proxy_redirectdefault;
proxy_set_headerHost$host:$server_port;
}
}
分别启动应用服务,再启动nginx服务
最后,访问http://localhost:9090/(项目名称)
当用户请求来自应用程序的Web页时,如果该用户还没有会话,则Web服务器将自动创建一个Session对象。当会话过期或被放弃后,服务器将终止该会话。Session对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在Session对象中。有关使用Session对象的详细信息,请参阅"ASP应用程序"部分的"管理会话"。注意会话状态仅在支持cookie的浏览器中保留。