Nginx+Tomcat集群问题

AooE 发布于 2016/05/09 12:32
阅读 437
收藏 0

nginx下负载两个tomcat;

出现问题是在访问项目的评论页面的时候:当评论完一条后提交,页面并不会立即出现该条评论(此时数据库已经有了数据),当再提交一条时,则会出现上一条评论,当前一条不会出现。直接访问后端tomcat没有这个问题。所以怀疑是Nginx配置问题。

不知道具体应该是哪儿影响了。

加载中
0
尚浩宇
尚浩宇

你提交评论是ajax的吗?


AooE
AooE
是的,ajax。从tomcat直接访问却无问题[5]
0
fly2xiang
fly2xiang
应用层有缓存?
AooE
AooE
嗯,不是的,换单机也有这个问题。看下面的回复,已经找到问题所在了。谢了哈
fly2xiang
fly2xiang
回复 @阿喔呃依呜迂 : 数据库主从同步问题?
AooE
AooE
缓存用的redis,但目前只是用于session管理
0
regend
regend
打开tomcat的accesslog,当提交评论后,看下请求评论内容的请求是否有发送到tomcat这端
AooE
AooE
对的,正解,这儿AJAX的逻辑得重写,原逻辑在单机上能行,放集群上就不一定行。已经有思路了,正在改代码[13],都是大神,困扰了大半天的问题,一会儿就解决了
AooE
AooE
后端我已经用redis来管理session了,所以这儿用ip_hash就感觉不太好了
刘学炜
刘学炜
回复 @亭舸翁 : 如果是分布式的 不能太依赖ip_hash 否则有可能导致一台服务器挂了 同一局域网的用户都不能访问
尚浩宇
尚浩宇
回复 @阿喔呃依呜迂 : 提交和查询分配在两台是对的,看你用redis做了session共享,那么对于页面来说后台就是一个整体,不应该出现我(用户)发送请求必须所有请求都在一台tomcat上,楼上说配置ip_hash,那个也是指定同一个ip一次会话只访问一台tomcat,我觉得你应该看看你的页面逻辑,如果是提交之后刷新页面就应该不会有问题,而ajax可能是你在后台取值的那个部分有点错误
亭舸翁
亭舸翁
回复 @阿喔呃依呜迂 : 其实不用改代码啊,nginx配置为ip_hash就可以了
下一页
0
让往事随风
让往事随风
1、使用redis或memcache等来统一存储会话;

2、对请求按照ip或会话id将相同的ip或会话id分配到相同的tomcat。学习资料:http://edu.51cto.com/course/course_id-5550.html


返回顶部
顶部