关于nginx负载两个tomcat(windows server系统)
刚刚完成了nginx的负载均衡,下面写一下遇到的问题和想法吧。
首先我是在阿里云上又有两台服务器,一台是没有外网的,作为文件服务器和一个后台服务器,另一台服务器是有外网服务的,作为一个前端服务和一个后台服务。
1、搭建共享目录文件夹,比如需要共享图片,文件等都放在共享文件夹中,确保两台服务器都能正常访问(这里不详细介绍了,百度上有很多);
2、修改java读取文件的目录(这样能访问到共享目录)
String url="smb://192.168.2.188/testIndex/";
SmbFile file = new SmbFile(url);
3、启动两个tomcat,和前端的nginx,先使用nginx配置单个tomcat 测试两个后台tomcat是否能读取到相同的文件
4、配置nginx,因为我的系统token是放在session中所以需要使用 ip_hash,如果不使用那么系统将无法登陆
upstream travelserver {
server tomcat1ip地址:8080 fail_timeout=20s;
server tomcat2ip地址:8080 fail_timeout=20s;
ip_hash;
}
这样就可以了,
当然nginx还有很多配置方式,但是其他的配置方式不适用session中记录token的,这里我试了一下,使用ip_hash后,固定用户的ip将调到指定的服务器,这大概也是这种配置方式的缺点吧。