Windows系统下Nginx反向代理Tomcat集群
2018-02-06 16:33
561 查看
Windows系统下Nginx反向代理Tomcat集群
环境要求jdk环境 (我使用的是1.8版本)
两台Tomcat以上服务器(我使用的是Tomcat7版本)
windows版Nginx压缩包(我使用的是1.8版本,Nginx下载地址)
1.将两个Tomcat服务器放在同一目录下(最好使用同一版本),修改端口号,务必使两个服务器的所有端口(不只是修改8080端口,也需要修改server.xml中的其他端口)不一致。我的Tomcat1使用端口号为8090,Tomcat2使用的端口号为8000。
2.创建一个web项目,在WebContent中添加一个index.jsp文件。项目目录结构以及index.html中的内容如下所示,访问时输出当前会话的id。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h3>Tomcat</h3> <hr> <%= session.getId() %> </body>< 4000 /span> </html>
3.将该项目分别放置在两个Tomcat服务器下面的webapps目录下面,并修改index.jsp中标题标签中的内容,位于Tomcat1下面的将其改为Tomcat1,位于Tomcat2下面的将其改为Tomcat2。启动两个Tomcat,并分别访问index界面,确保能正确显示。
4.上面部署完两台Tomcat服务器,接下来部署Nginx服务器。将下载的Nginx压缩包解压,得到如下目录,双击nginx.exe程序,可以在windows任务管理器中看到nginx.exe程序已经启动,浏览器输入localhost,可以得到welcome字样。
5.接下来来配置代理,在nginx压缩包中,找到conf——>nginx.conf文件,编辑nginx.conf文件,在大概第35行左右的位置,在server{}代码块上添加upstream server_wisdom{},server_wisdom是名字,自己可以随便起,然后在代码块中添加Tomcat服务器地址。然后在location代码块中添加代理,proxy_pass http://server_wisdom; 如下图我注释的地方,将注释去掉即可。
# upstream server_wisdom{ # server 127.0.0.1:8090; # server 127.0.0.1:8000; # } server { listen 80; server_name localhost; location / { root html; index index.html index.htm; # proxy_pass http://server_wisdom; }
6.在任务管理器中将nginx.exe进程结束掉,重新启动nginx,此时在浏览器中输入localhost/test,便会展示index.jsp中的内容,刷新浏览器,你会看到tomcat1和tomcat2一直变化,并且下面的sessionid也在变化。
7.当用户访问浏览器时,刷新浏览器后sessionid便发生变化,这就意味着访问的服务器在一直变化,这是绝对不允许的,如何解决多台Tomcat服务器session共享问题。有三种解决方案,一是修改tomcat的server.xml和项目中的web.xml两个配置文件,二是将sessionid放入redis中,三是在nginx的配置文件中,在upstream中添加ip_hash。
介绍一下第一种方法,这种方法也叫使用tomcat的广播机制完成session共享。
将两台tomcat服务器中server.xml配置文件中的集群命令放开,大概在在109行,将其复制出来即可。然后修改项目中的web.xml配置文件,加入一个< distributable />标签即可。重启两台Tomcat服务器,启动nginx服务,浏览器输入localhost/test,刷新后sessionid不会变化。
由于大部分服务器都是部署在linux系统当中,所以在此不再详细描述在windows系统中具体如何实现。
下一篇博客将继续学习Centos7系统下Nginx反向代理Tomcat集群,并解决sessionid共享问题。
相关文章推荐
- nginx在linux系统下的安装部署,以及反向代理https请求协议,ssl证书的生成,负载均衡tomcat服务器!
- Nginx 反向代理集群 & 负载均衡(Tomcat,Jetty集群)
- nginx反向代理tomcat集群实现动静分离
- windows 系统nginx做反向代理实例
- nginx反向代理tomcat集群实现动静分离
- Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
- 【Nginx-反向代理服务器】实践篇(三)之Tomcat+Nginx搭建集群
- LINUX中NGINX反向代理下的TOMCAT集群(详解)
- LINUX中NGINX反向代理下的TOMCAT集群
- 详解Linux中Nginx反向代理下的tomcat集群
- 【Nginx-反向代理服务器】实践篇(三)之Tomcat+Nginx搭建集群
- nginx反向代理tomcat集群达到负载均衡,同时使用proxy_cache做web缓存 推荐
- Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
- Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
- nginx+Tomcat 配置负载均衡集群。反向代理。
- 手动部署LNMT(Nginx+Tomcat)并实现Nginx反向代理Tomcat
- Centos 7 安装nginx 并结合 tomcat 反向代理 负载均衡
- Nginx+Memcached+Tomcat集群配置(Windows平台)
- Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
- nginx安装配置+集群tomcat:Centos和windows环境