Nginx+Tomcat实现反向代理与动静分离

简介:

1. 什么是动静分离

        所谓动静分离就是通过nginx(或apache等)来处理用户端请求的静态页面,tomcat(或weblogic)处理动态页面,从而达到动静页面访问时通过不同的容器来处理。

2. 为什么做动静分离

         Nginx处理静态页面的效率远高于tomcat,所有我们只让tomcat干自己擅长的事情,以事实说话,我们通过ab进行对一个静态页面访问做压力测试。

1) 做动静分离后nginx处理静态页面的压力测试:

# ab -n 1000 -c 200 http://10.10.11.91/index.html

clip_image002

吞吐量为:1.2M

2) 未做动静分离而是直接由tomcat处理同一个静态页面的压力测试:

# ab -n 1000 -c 200 http://10.10.11.91:8080/index.html

clip_image004

吞吐量为:0.08M

通过上面的压力测试结果,所有请求由tomcat处理与动静分离相比毫无疑问动静分离才是王道!

3. 动静分离逻辑图

clip_image006

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三个测试文件:

clip_image007

我在nginx的根目录/usr/local/nginx/html下建立测试首页index.html

直接访问tomcat的静态首页:

clip_image008

直接访问tomcat的jsp页面:

clip_image009

直接访问tomcat的.do页面:

clip_image010

现在进行通过nginx进行访问:

Nginx的首页:

clip_image011

查看nginx处理jsp页面的请求: 

查看nginx处理.do页面的请求:

clip_image013

至此,nginx与tomcat已实现了反向代理动静分离。





本文转自 baiying 51CTO博客,原文链接:http://blog.51cto.com/baiying/1123230,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
36 0
|
1月前
|
负载均衡 应用服务中间件 API
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
Nginx配置文件详解Nginx负载均衡Nginx静态配置Nginx反向代理
45 4
|
1月前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
23 1
|
5天前
|
域名解析 弹性计算 应用服务中间件
基于nginx反向代理实现OSS固定域名IP访问
本文基于阿里云OSS手册:https://help.aliyun.com/zh/oss/use-cases/use-an-ecs-instance-that-runs-centos-to-configure-a-reverse-proxy-for-access-to-oss,继续深入讨论如何利用nginx反向代理,实现固定的IP/域名访问OSS bucket。官方文档能够解决大部分的反向代理固定IP访问oss bucket的场景,但是对于必须使用域名作为endpoint的系统,会出现signatrue鉴权问题。本文继续在官方文档的基础上,将反向代理需要域名作为endpoint的场景补齐方案。
|
19天前
|
负载均衡 监控 Unix
[AIGC] Nginx:一个高性能的 Web 服务器和反向代理
[AIGC] Nginx:一个高性能的 Web 服务器和反向代理
|
20天前
|
运维 Java 应用服务中间件
Nginx+Tomcat动静分离及Nginx优化(企业案例)
Nginx+Tomcat动静分离及Nginx优化(企业案例)
|
1月前
|
负载均衡 JavaScript 前端开发
Nginx实现反向代理、负责均衡、动静分离
Nginx实现反向代理、负责均衡、动静分离
|
1月前
|
应用服务中间件 nginx
nginx进行反向代理的配置
在Nginx中设置反向代理的步骤:编辑`/etc/nginx/nginx.conf`,在http段加入配置,创建一个监听80端口、服务器名为example.com的虚拟主机。通过`location /`将请求代理到本地3000端口,并设置代理头。保存配置后,使用`sudo nginx -s reload`重载服务。完成配置,通过example.com访问代理服务器。
27 0
|
1月前
|
应用服务中间件 Nacos nginx
nacos 2.3.2模式 standalone 使用nginx 反向代理之后访问nacos控制台静
nacos 2.3.2模式 standalone 使用nginx 反向代理之后访问nacos控制台静
|
2月前
|
运维 前端开发 应用服务中间件
LNMP详解(七)——Nginx反向代理配置实战
LNMP详解(七)——Nginx反向代理配置实战
24 1