nginxredistomcat7集群session共享(1).docx
-
资源ID:3162078
资源大小:39.63KB
全文页数:10页
- 资源格式: DOCX
下载积分:6.99金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
nginxredistomcat7集群session共享(1).docx
nginxredistomcat7集群session共享一 : 安装介质准备: (1) tomcat7 (2) Nginx 及相关组件: (3) Redis相关组件及jar包 (根据个人习惯,在linux的根目录下建了一个tmp文件夹,所需介质全部放到该文件夹下) 先确保linux系统上已安装有gcc及相关编译组件。 二:安装redis 1):进入到tmp目录下,解压redis的相关文件进行安装, # tar zxvf redis-2.8.23.tar.gz # cd redis-2.8.23 # make #make install 安装完成后在redis的src 目录下有redis-benchmark、redis-check-aof、redis-check-dump redis-cli、redis-server等几个可执行文件,其中redis-server是redis server 的启动服务,redis-cli 可进入redis 客户端; 此外,在解压后的文件夹中还有redis的配置文件redis.conf。 可以在usr下建一个redis 目录,将上述可执行文件拷贝到该文件夹下。 2):测试redis是否安装成功 a-启动redis 服务 #./redis-server,启动成功后看到如下界面 Redis 的默认端口是6379, b-启动redis client 端进行测试 #./redis-cli启动redis 的客户端服务,出现如下界面,我们可以利用redis设置一个简单缓存进行测试: c-上述现象都正常说明redis安装没有问题,上述方式启动时使用的是默认配置,我们可以修改redis的配置文件,按照我们的要求进行修改; 这里从别的地方截个图供参考: 上述只是配置的一部分,可根据自己的要求进行配置修改。 修改完成后让redis使用我们修改的配置文件 #./redis-server redis.conf 三:安装Nginx 1) 先安装nignx 运行时依赖的zlib 及 pcre 进入temp目录下,解压zlib 和 pcre 并进行配置安装 (1)安装zlib # tar zxvf zlib-1.2.8.tar.gz # cd zlib-1.2.8 # ./configure -prefix=/usr/local/zlib (可以不配置目录,安装到默认目录下) # make && make install (2)安装pcre # tar zxvf pcre-8.32.tar.gz # cd pcre-8.32 # ./configure -prefix=/usr/local/pcre (可以不配置目录,安装到默认目录下) # make && make install 2) 安装Nginx # tar zxvf nginx1.4.0.tar.gz # cd nginx1.4.0 # mkdir /usr/nginx (在usr目录下创建nginx的安装目录) # ./configure -prefix=/usr/nginx # make && make install 3) 配置Nginx #cd /usr/nginx/conf #vi nginx.conf 配置参考如下: #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events worker_connections 1024; http include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user $time_local "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"' #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; gzip on; #配置负载的三个tomcat服务器 upstream #这里还可以根据服务器压力配置权重, server 127.0.0.1:8088; server 127.0.0.1:8087; # server listen 9999;#nginx监听端口 server_name ;#nginx服务所在主机 charset utf-8; #access_log logs/host.access.log main; # location / root html; index index.html index.htm; proxy_pass ; #代理三个tomcat服务器集群地址 proxy_set_header X-Real-IP $remote_addr; client_max_body_size 100m; #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html root html; # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location .php$ # proxy_pass http:/127.0.0.1; # # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location .php$ # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; # # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location /.ht # deny all; # # another virtual host using mix of IP-, name-, and port-based configuration # #server # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / # root html; # index index.html index.htm; # # # HTTPS server # #server # listen 443; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / # root html; # index index.html index.htm; # # 四:安装tomcat 在usr 目录下准备两个tomcat,分别为redis-tomcat701,redis-tomcat702,并将test.jsp页面部署到webapp下。 修改Tomcat配置: Redis-tomcat701 配置: 1) 修改conf下server.xml文件配置 修改访问端口8080,根据nginx配置修改为 8088,同时修改其他端口,防止两个tomcat同时启动时出现端口冲突。如图: 2) 修改conf下context.xml文件配置,在</Context>标签上加入以下redis session共享的的配置内容: <Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" /><Manager className="com.radiadesign.catalina.session.RedisSessionManager" host="localhost" port="6379" database="0" maxInactiveInterval="60" /> 如图: Redis-Tomcat2配置: 3) 修改conf下server.xml文件配置 修改访问端口8080,根据nginx配置修改为 8087,同时修改其他端口,防止三个tomcat同时启动时出现端口冲突。如图: 4) 修改conf下context.xml文件配置,在</Context>标签上加入以下redis session共享的的配置内容: <Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" /><Manager className="com.radiadesign.catalina.session.RedisSessionManager" host="localhost" port="6379" database="0" maxInactiveInterval="60" /> 如图: 将redis的jar 包放入tomcat 的lib 目录下: 在tomcat的lib目录下可以看到jar包已添加 五:部署test.jsp页面 在tomcat webapp目录下创建test应用目录,将test.jsp放到该目录下,为更清楚的识别访问的是不同tomcat下的页面达到了session同步的效果,修改test.jsp页面中的输出标记信息, Redis-Tomcat 701 下的页面 类似的,将redis-tomcat702下的页面中的输出信息修改为redis-tomcat702 。 六:启动相关程序测试 1) 先启动redis服务 可以看到redis启动成功,并可以查到当前正在运行的进程及生成的进程pid文件 2) 依次启动redis-tomcat701、redis-tomcat2、 redis-tomcat701: 可以查看到生成的日志文件中打印有redis session的信息, 同样启动redis-tomcat702。 3) 启动nginx 4) 输入访问地址http:/127.0.0.1:9999/test/test.jsp 连续刷新页面访问, 可以看到访问页面被nginx 分发到不同的tomcat 下,但是session是相同的。 七:热插拔测试 实现了集群,我们测试一下tomcat节点的热插拔: a-先停掉redis-tomcat701,继续访问http:/127.0.0.1:9999/test/test.jsp,查看页面信息: 此时,访问被nginx分发到redis-tomcat702,session的信息仍然和之前保持一致,不断刷新页面,可以时间发生变化 b此时,停掉redis-tomcat702,重新开启redis-tomcat701,然后继续访问之前的链接http:/127.0.0.1:9999/test/test.jsp,查看页面信息: 可以看到访问被nginx发到redis-tomcat701,session的信息仍然没有发生变化,不断刷新页面,时间发生变化,其他信息均未变化。