Nginx负载均衡+tomcat+session共享
2016-05-20 15:17
656 查看
本文,是笔者工作之余写的,第一是把之前打系统框架的步骤记录下来。第二是将这个过程,谈不上经验,奉献给正在撘这种框架遇到各种bug,各种问题的人们。
看这个之前首先你需要已经用nginx+tomcat+session共享打过框架,但是没有成功,遇到种种问题。即可参考此文。文章比较简洁,但全是精华。
对了,本文是基于windows平台下的。
好了,言归正传!
——————————————————————————————————————————————————
下载Nginx ;下载地址:http://nginx.org/
下载tomcat;下载地址:http://tomcat.apache.org/download-60.cgi
下载memcached-win32
下载一扒拉Session共享所用的jar包
Nginx下载解压之后得到这样的列表:
配置nginx.conf;新增proxy.conf和gzip.conf
Nginx.conf
gzip.conf:
proxy.conf:
至此Nginx已经配置成功。双击目录下面的nginx.exe 即可打开。
访问127.0.0.1将显示你在Nginx.conf中配置的:
的main.html页面
由此看出,已经将静态资源文件分开。
2 . tomcat
我使用的是tomcat6.X;将tomcat拷贝2份,分别将tomcat的端口改变。如果不在同一台机子上则不用更改。以下列出更改的地方:
Conf\server.xml:
A: <Server port="18005" shutdown="SHUTDOWN">
B: <Connector port="18080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
C: <Connector port="18009" protocol="AJP/1.3" redirectPort="8443" />
D: <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
jvmRoute="tomcat1"是做Session共享的时候使用的。
同理,配置tomcat2!
由于上面的Nginx.conf已经添加了两台tomcat所以,现在启动Nginx和tomcat 访问127.0.0.1/project/index.jsp 即能看出Nginx负载均衡,将请求分发到不同的tomcat中。
以上就是Nginx+tomcat负载均衡,百度一下这种一大堆!
安装memcached,并启动。
a) 下载session共享需要的jar包
i.
![](https://oscdn.geek-share.com/Uploads/Images/Content/202002/02/8745ec9cc3df8ef518eb1924af6bc321.png)
配置context.xml文件,如下:
添加下面的代码:
经过上面的配置,则代表Nginx负载均衡,静态动态请求分开+tomcat集群+msm,session共享成功!!!
结果如下:
同一浏览器中:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202002/02/1b542b37dcb0cc30fc69d36c6b95a8e2.png)
不同浏览器中:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202002/02/237e35ce0b4cbffc2485f7c6123f227e.png)
原文地址:http://my.oschina.net/yuxj/blog/220012?p=1
看这个之前首先你需要已经用nginx+tomcat+session共享打过框架,但是没有成功,遇到种种问题。即可参考此文。文章比较简洁,但全是精华。
对了,本文是基于windows平台下的。
好了,言归正传!
——————————————————————————————————————————————————
下载Nginx ;下载地址:http://nginx.org/
下载tomcat;下载地址:http://tomcat.apache.org/download-60.cgi
下载memcached-win32
下载一扒拉Session共享所用的jar包
Nginx下载解压之后得到这样的列表:
配置nginx.conf;新增proxy.conf和gzip.conf
Nginx.conf
#Nginx所用用户和组,window下不指定 #user niumd niumd; #工作的子进程数量(通常等于CPU数量或者2倍于CPU) worker_processes 4; #错误日志存放路径 error_log logs/error.log info; #指定pid存放文件 pid logs/nginx.pid; events { #使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue,window下不指定。 #use epoll; #允许最大连接数 worker_connections 2048; } http { include mime.types; default_type application/octet-stream; access_log logs/access.log; fastcgi_intercept_errors on; client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m; client_header_buffer_size 1k; large_client_header_buffers 4 4k; sendfile on; tcp_nopush on; tcp_nodelay on; #keepalive_timeout 75 20; #keepalive_timeout 0; include gzip.conf; include proxy.conf; upstream localhost { #ip_hash; server localhost:18081 weight=3; server localhost:18080 weight=1; } server { listen 80; server_name localhost; #自定义40X或者50X页面的时候需要开启 fastcgi_intercept_errors on;(上面已经开启) error_page 404 http://127.0.0.1/404.html; #定义网站首页 #root:定义网站首页存放地址 #index:定义网站首页名称 location / { root D:/test; index main.html; } #定义静态资源存放地址 location ~ \.(html|js|css|png|gif|jpg|jpeg|bmp)$ { root D:/test; } #将jsp的请求转移到tomcat里面 location ~ \.(jsp)$ { proxy_connect_timeout 3; proxy_send_timeout 30; proxy_read_timeout 30; proxy_pass http://localhost; } } }
gzip.conf:
gzip on; gzip_min_length 1000; gzip_types text/plain text/css application/javascript application/x-javascript;
proxy.conf:
proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k;
至此Nginx已经配置成功。双击目录下面的nginx.exe 即可打开。
访问127.0.0.1将显示你在Nginx.conf中配置的:
location / { root D:/test; index main.html; }
的main.html页面
由此看出,已经将静态资源文件分开。
2 . tomcat
我使用的是tomcat6.X;将tomcat拷贝2份,分别将tomcat的端口改变。如果不在同一台机子上则不用更改。以下列出更改的地方:
Conf\server.xml:
A: <Server port="18005" shutdown="SHUTDOWN">
B: <Connector port="18080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
C: <Connector port="18009" protocol="AJP/1.3" redirectPort="8443" />
D: <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
jvmRoute="tomcat1"是做Session共享的时候使用的。
同理,配置tomcat2!
由于上面的Nginx.conf已经添加了两台tomcat所以,现在启动Nginx和tomcat 访问127.0.0.1/project/index.jsp 即能看出Nginx负载均衡,将请求分发到不同的tomcat中。
以上就是Nginx+tomcat负载均衡,百度一下这种一大堆!
安装memcached,并启动。
a) 下载session共享需要的jar包
i.
![](https://oscdn.geek-share.com/Uploads/Images/Content/202002/02/8745ec9cc3df8ef518eb1924af6bc321.png)
配置context.xml文件,如下:
添加下面的代码:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:127.0.0.1:11211" sticky="false" sessionBackupAsync="false" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|jpeg|bmp|css|js|html|htm)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />
经过上面的配置,则代表Nginx负载均衡,静态动态请求分开+tomcat集群+msm,session共享成功!!!
结果如下:
同一浏览器中:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202002/02/1b542b37dcb0cc30fc69d36c6b95a8e2.png)
不同浏览器中:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202002/02/237e35ce0b4cbffc2485f7c6123f227e.png)
原文地址:http://my.oschina.net/yuxj/blog/220012?p=1
相关文章推荐
- nginx+tocmat 负载均衡时,一台tomcat宕机时,如何快速切换到其他tomcat
- 运行tomcat6w.exe ,提示 指定的服务未安装 unable to open the service 'tomcat6'
- eclipse 远程调试 tomcat
- eclipse 下tomcat加载两次程序的解决办法
- 监控多实例tomcat的cpu使用率
- Tomcat的server.xml配置文件详解
- Apache2.2与Tomcat7集成方案详解
- apache-tomcat-5.5.35.搭建实战
- Tomcat安全和优化的八种方式-生产经验加个人见解
- Zabbix监控tomcat
- Tomcat配置域名
- Apache2.2+Tomcat7.0整合配置详解
- windows部署tomcat服务
- Apache与Tomcat整合
- 同一个tomcat下面部署了两个项目,有一个访问不了404,web项目配置webAppRootKey
- Tomcat
- tomcat的connector与container原理分析(一)
- nginx+tomcat做动静分离配置+nginx+SSL
- tomcat配置调优
- tomcat缓存问题