Nginx+Tomcat实现反向代理与动静分离
2013-01-24 09:23
561 查看
1. 什么是动静分离
所谓动静分离就是通过nginx(或apache等)来处理用户端请求的静态页面,tomcat(或weblogic)处理动态页面,从而达到动静页面访问时通过不同的容器来处理。
2. 为什么做动静分离
Nginx处理静态页面的效率远高于tomcat,所有我们只让tomcat干自己擅长的事情,以事实说话,我们通过ab进行对一个静态页面访问做压力测试。
1) 做动静分离后nginx处理静态页面的压力测试:
# ab -n 1000 -c 200 http://10.10.11.91/index.html![](http://img1.51cto.com/attachment/201301/21/1068039_1358748017W4PY.jpg)
吞吐量为:1.2M
2) 未做动静分离而是直接由tomcat处理同一个静态页面的压力测试:
# ab -n 1000 -c 200 http://10.10.11.91:8080/index.html![](http://img1.51cto.com/attachment/201301/21/1068039_1358748018wB79.jpg)
吞吐量为:0.08M
通过上面的压力测试结果,所有请求由tomcat处理与动静分离相比毫无疑问动静分离才是王道!
3. 动静分离逻辑图
![](http://img1.51cto.com/attachment/201301/21/1068039_1358748018fPaw.jpg)
4. Nginx与tomcat部署
由一键安装middleware_install_v.1.0.3.tar.gz进行部署,这里不再赘述。
5. Nginx配置
nginx需要配置的地方如下:server { listen 80; server_name www.test.com 10.10.11.91; index index.html index.htm index.jsp index.do root /usr/local/nginx/html; #由nginx处理静态页面 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 1h; } location ~ (\.jsp)|(\.do)$ { proxy_pass http://10.10.11.91:8080; #以jsp和do请求的页面经过nginx反向代理由tomcat处理 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 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } } |
6. 验证动静分离的效果
我在tomcat的根目录ROOT下建立了index.html、test.jsp、test.do三个测试文件:![](http://img1.51cto.com/attachment/201301/21/1068039_1358748019cZhV.png)
我在nginx的根目录/usr/local/nginx/html下建立测试首页index.html
直接访问tomcat的静态首页:
![](http://img1.51cto.com/attachment/201301/21/1068039_1358748019PQgZ.png)
直接访问tomcat的jsp页面:
![](http://img1.51cto.com/attachment/201301/21/1068039_1358748020nsL0.png)
直接访问tomcat的.do页面:
![](http://img1.51cto.com/attachment/201301/21/1068039_1358748020vtx2.png)
现在进行通过nginx进行访问:
Nginx的首页:
![](http://img1.51cto.com/attachment/201301/21/1068039_1358748020enoT.png)
查看nginx处理jsp页面的请求:
![](http://img1.51cto.com/attachment/201301/141143507.jpg)
查看nginx处理.do页面的请求:
![](http://img1.51cto.com/attachment/201301/21/1068039_1358748022Io1N.png)
至此,nginx与tomcat已实现了反向代理动静分离。
相关文章推荐
- Nginx+Tomcat实现反向代理与动静分离
- Nginx+Tomcat实现反向代理及动静分离
- Nginx+Tomcat实现反向代理及动静分离
- Nginx+Tomcat实现反向代理、页面缓存、动静分离
- Nginx+Tomcat实现反向代理及动静分离 推荐
- Tomcat(二):Nginx反向代理实现Tomcat动静分离
- Tomcat(二):Nginx反向代理实现Tomcat动静分离
- Tomcat(二):Nginx反向代理实现Tomcat动静分离
- 高性能Web服务之Nginx+Tomcat实现负债均衡反向代理及动静分离
- 简单实现nginx+tomcat的反向代理与动静分离
- Nginx+Tomcat实现反向代理与动静分离
- Nginx+Tomcat实现反向代理与动静分离 推荐
- Nginx+Tomcat实现动静分离
- nginx+tomcat实现动静分离
- nginx反向代理tomcat集群实现动静分离
- Nginx 笔记与总结(15)nginx 实现反向代理 ( nginx + apache 动静分离)
- Nginx + Tomcat 实现动静分离
- Tomcat(三) Tomcat安装配置: Tomcat+Nginx+keepalived 实现动静分离、Session会话保持的高可用集群
- tomcat服务器下使用nginx实现最简单的动静分离--解决css、js不加载的问题