Nginx 服务器 之Nginx与tomcat实现负载均衡
2016-12-01 11:13
465 查看
[b]
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <Context> 4 5 <WatchedResource>WEB-INF/web.xml</WatchedResource> 6 <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource> 7 8 <!-- sticky session 最小配置--> 9 <!-- className 管理器类名 --> 10 <!-- memcachedNodes memcached服务器节点,以节点名:主机:端口形式表示,其中节点名随意命名,但不同tomcat间要一致 --> 11 <!-- sticky隐含默认值为true,此时为sticky session模式 --> 12 <!-- failoverNodes 仅适用于sticky模式, n1表示主要将session备份到n2,如果n2不可用,再用n1--> 13 <!-- 另一台服务器配置正好相反,这样保证将session保存到其它机器,避免整个机器崩溃时tomcat与session一起崩溃--> 14 <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" 15 memcachedNodes="n1:192.168.1.62:11211,n2:192.168.1.63:11211" 16 failoverNodes="n1" 17 /> 18 19 <!-- 经常用到的生产环境sticky(粘性)模式配置 --> 20 <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" 21 memcachedNodes="n1:192.168.1.62:11211,n2:192.168.1.63:11211" 22 failoverNodes="n1" 23 requestUriIgnorePattern=".*\.(jpg|png|css|js)$" 24 memcachedProtocol="binary" 25 transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" 26 /> 27 28 <!-- 经常用到的生产环境non-sticky(非粘性模式)模式配置 --> 29 <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" 30 memcachedNodes="n1:192.168.1.62:11211,n2:192.168.1.63:11211" 31 sticky="false" 32 sessionBackupAsync="false" 33 lockingMode="auto" 34 requestUriIgnorePattern=".*\.(jpg|png|css|js)$" 35 memcachedProtocol="binary" 36 transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" 37 /> 38 39 <!-- 40 <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" 41 memcachedNodes="n1:192.168.1.62:11211,n2:192.168.1.63:11211" 42 43 #sticky模式,默认true 44 sticky="false" 45 46 #仅适用于sticky模式,n1表示主要将session备份到n2,如果n2不可用,再用n1 47 failoverNodes="n1" 48 49 #忽略的请求类型,这些类型请求不处理session 50 requestUriIgnorePattern=".*\.(jpg|png|css|js)$" 51 52 #例如context中设置sessionPath=/时,一个host下多个应用可能有相同session_id, 53 #此时向memcached写入时会造成混乱,可通过以下方式加前缀区分不同应用 54 storageKeyPrefix="static:name|context|host|webappVersion|context.hash|host.hash|多项组合,以,间隔" 55 56 #设置mecached协议数据传输方式,默认text,设为binary有助力性能提升 57 memcachedProtocol="binary" 58 59 #是否异步存储session变化,默认true,性能好,适用于sticky模式, 60 #non-sticky时建议设置为false,避免延迟造成信息不一致 61 sessionBackupAsync="false" 62 63 #仅适用于non-sticky模式,为避免同步编辑冲突,在修改session时锁定 64 #同步编辑一种可能发生的情况是在ajax请求时,同一页多个请求同时发起,可能会访问不同后端 65 #auto 读模式不锁写模式锁 66 #uriPattern模式,将URI+"?"+queryString与模式Regex匹配,如果匹配则锁定 67 lockingMode="none|all|auto|uriPattern:Regex" 68 69 #使用第三方序列化工具,提高序列化性能 70 #常用的第三方工具kryo, javolution, xstream等 71 #此时需要向tomcat/lib下添加相关jar包 72 transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" 73 74 /> 75 --> 76 77 </Context>
View Code
四、集群环境开发注意事项
1、实体类要序列化( implements Serializable)
private static final long serialVersionUID = 3349238980725146825L;
2、获取客户端请求地址的方式 。在nginx-tomcat.conf中添加如下配置:
server { location / { proxy_set_header X-Real-IP $remote_addr; # 真实的客户端IP } }
java代码:
public static String getIp(HttpServletRequest request){ String remoteIp =request.getRemoteAddr(); String headIp=request.getHeader("X-Real-IP"); return headIp==null?remoteIp:headIp; }
3、动静分离
把静态文件放在nginx服务器中(css、js、图片)
相关文章推荐
- Nginx+Tomcat+Redis实现应用服务器集群负载均衡和Session共享
- nginx+tomcat实现应用服务器负载均衡
- Windows环境下Nginx+Tomcat+Redis实现应用服务器集群负载均衡和Session共享
- 同一个服务器部署多个Tomcat并用Nginx实现负载均衡分担
- Docker+Nginx+tomcat实现一个服务器上多个tomcat的负载均衡
- 【整理】Nginx+Tomcat+Memcached实现服务器集群负载均衡
- 【Linux运维-集群技术进阶】Nginx+Tomcat实现Web服务器的负载均衡
- Nginx 服务器 之Nginx与tomcat实现负载均衡
- nginx+tomcat在一台服务器上实现负载均衡
- Nginx 服务器 之Nginx与tomcat实现负载均衡
- Nginx代理Tomcat负载均衡 实现session
- nginx整合tomcat实现负载均衡/集群(可用版)
- CentOS系统中配置Nginx服务器实现反向代理和负载均衡
- Nginx和Tomcat负载均衡实现session共享
- nginx+tomcat实现负载均衡
- Nginx和Tomcat负载均衡实现session共享
- nginx和tomcat实现反向代理、负载均衡和session共享
- nginx和tomcat实现反向代理、负载均衡和session共享
- Tomcat服务器集群与负载均衡实现
- nginx + tomcat 集群实现负载均衡