haproxy、nginx以及httpd负载均衡tomcat主机,seesion保持问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了haproxy、nginx以及httpd负载均衡tomcat主机,seesion保持问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4657字,纯文字阅读大概需要7分钟。
内容图文
**实验环境**
CentOS 7
haproxy(nginx):172.16.61.4(node4)
httpd+tomcat:172.16.61.7(node7)
172.16.61.8(node8)
一、使用nginx做负载均衡
**配置tomcat以及httpd**
<Engine name="Catalina" defaultHost="localhost" jvmRoute="Tomcat8"> #在node8节点添加jvmRoute标记,便于直观查看负载均衡效果(node7节点为Tomcat7) <Host name="node8.tz.com" appBase="/data/webapps" #在两台tomcat上配置同样的虚拟主机 unpackWARs="true" autoDeploy="true"> [root@node8 conf.d]# cat proxy.conf #httpd配置(两台tomcat要相同) <VirtualHost *:80> ServerName tc1.tz.com ProxyRequests Off ProxyVia On ProxyPreserveHost On <Proxy *> Require all granted </Proxy> ProxyPass / ajp://localhost:8009/ ProxyPassReverse / ajp:://localhost:8009/ <Location /> Require all granted </Location> </VirtualHost> [root@node7 ROOT]# cat index.jsp #在tomcat的虚拟主机中定义主页内容 <%@ page language="java" %> <html> <head><title>Tomcat7</title></head> <body> <h1><font color="red">node8.tz.com</font></h1> <table align="centre" border="1"> <tr> <td>Session ID</td> <% session.setAttribute("magedu.com","magedu.com"); %> <td><%= session.getId() %></td> </tr> <tr> <td>Created on</td> <td><%= session.getCreationTime() %></td> </tr> </table> </body> </html>
**配置nginx**
upstream tcsrvs { #在nginx配置文件中定义upsteam模块,默认采用轮询的调度算法 server node8:80; #基于主机名调度,本地hosts文件要解析后端hostname server node7:80; } location / { #在server中定义location进行反向代理 proxy_set_header Host $http_host; #将客户端请求的host代理至后端 proxy_pass http://tcsrvs/; }
配置本地hosts文件,解析172.16.61.4 node8.tz.com地址
实现了轮询的效果
**haproxy负载均衡tomcat**
[root@node4 haproxy]# sed ‘s@^#.*\+\|^[[:space:]]\+#.*\+@@‘ haproxy.cfg global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon stats socket /var/lib/haproxy/stats defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0/8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 3000 frontend main *:80 default_backend tomcat listen statistics bind *:9090 stats enable stats hide-version stats uri /haproxyadmin?stats stats realm "HAproxy\ Statistics" stats auth admin:tianzhuang stats admin if TRUE backend tomcat balance roundrobin server tomcat1 172.16.61.7:80 check server tomcat2 172.16.61.8:80 check
**httpd负载均衡配置**
<proxy balancer://tccluster> BalancerMember http://172.16.61.7:80 loadfactor=1 BalancerMember http://172.16.61.8:80 loadfactor=1 ProxySet lbmethod=bytraffic </proxy> <VirtualHost *:80> ServerName localhost ProxyRequests Off ProxyVia On ProxyPass / balancer://tccluster/ ProxyPassReverse / balancer://tccluster/ ProxyPreserveHost On <Proxy *> Require all granted </Proxy> <Location /> Require all granted </Location> </VirtualHost>
**保持session会话**
-
nginx负载均衡session保持问题:
upstream tcsrvs { server node8:80; server node7:80; ip_hash; #基于客户端地址进行hash,将来自同一ip的请求发至同一个server # hash $request_uri; #基于请求的uri hash,应用于后端的缓存server; # hash $remote_addr; #基于远程客户端地址hash,相当于ip_hash; }
-
haproxy负载均衡session保持问题:
backend tomcat balance roundrobin cookie TOMCAT insert nocache #在后端主机的响应报文中插入cookie server tomcat1 172.16.61.7:80 check cookie tomcat1 server tomcat2 172.16.61.8:80 check cookie tomcat2
-
httpd负载均衡session保持问题:
[root@node4 conf.d]# cat proxy.conf Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED #增加头部的session信息,以route为关键字 <proxy balancer://tccluster> BalancerMember http://172.16.61.7:80 loadfactor=1 route=Tomcat7 #route为Tomcat7,后端tomcat server也需要加入该route信息 BalancerMember http://172.16.61.8:80 loadfactor=1 route=Tomcat8 ProxySet lbmethod=bytraffic ProxySet stickysession=ROUTEID </proxy> <VirtualHost *:80> ServerName localhost ProxyRequests Off ProxyVia On ProxyPass / balancer://tccluster/ ProxyPassReverse / balancer://tccluster/ ProxyPreserveHost On <Proxy *> Require all granted </Proxy> <Location /> Require all granted </Location> </VirtualHost>
原文:http://tz666.blog.51cto.com/10990100/1749967
内容总结
以上是互联网集市为您收集整理的haproxy、nginx以及httpd负载均衡tomcat主机,seesion保持问题全部内容,希望文章能够帮你解决haproxy、nginx以及httpd负载均衡tomcat主机,seesion保持问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。