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

1. 什么是动静分离

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

2. 为什么做动静分离

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

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

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

吞吐量为:1.2M
  www.2cto.com

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

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

吞吐量为:0.08M

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

3. 动静分离逻辑图

4. Nginx与tomcat部署

由一键安装middleware_install_v.1.0.3.tar.gz进行部署,这里不再赘述。

5. Nginx配置

nginx需要配置的地方如下:

www.2cto.com

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

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

直接访问tomcat的静态首页:

直接访问tomcat的jsp页面:

直接访问tomcat的.do页面:

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

Nginx的首页:
  www.2cto.com

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

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

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

时间: 2024-10-26 06:50:01

Nginx+Tomcat实现反向代理与动静分离的相关文章

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

通常tomcat部署结构 通常tomcat前端是nginx或apache,后端都为tomcat,也就意味着无论前端是什么角色都是以代理的方式进行工作的 但是要注意的是如果基于nginx做反向代理,转发请求到tomcat的时候是基于http协议进行转发的 但注意的是tomcat的连接器有httpajp jk2 jserv 而如果基于nginx做转发的话只支持http做转发 而如果apache做代理转发的话,几乎常用协议都支持 但常用的连接类型都是ajp协议,因为ajp协议可以工作在二进制模式下,而

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

其实本人比较喜欢nginx跑静态和做负载反向代理,动态php还是交给apache处理比较稳定,jsp就交给tomcat.resin或jboss.nginx跑静态的能力是无与伦比的,是目前web服务器里最强的.nginx和apache.tomcat.resin的动静分离配置其实很简单,就几句配置,稳定性也非常好. 1.nginx和apache的动静分离配置: 把下面配置放到nginx配置文件相应的server { }里面,如果使用其他端口号,改一下就行: #所有php的动态页面均交由apache处

高性能Web服务之Nginx+Tomcat实现负债均衡反向代理及动静分离

在实际生产中,Tomcat服务器一般不单独使用在项目中,对于静态资源的响应Nginx表现的比较好,另外由于nginx是专门用于反向代理的服务器,所以很容易实现将java的请求转发到后端交给tomcat容器处理,而本身用来处理静态资源. 通常tomcat前端是nginx或apache,后端都为tomcat,也就意味着无论前端是什么角色都是以代理的方式进行工作的;但是要注意的是如果基于nginx做反向代理,转发请求到tomcat的时候是基于http协议进行转发的:但注意的是tomcat的连接器有ht

Nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第三部分

Nginx反向代理.动静分离.负载均衡及rewrite隐藏路径详解 (Nginx Apache MySQL Redis) 楓城浪子原创,转载请标明出处! 更多技术博文请见个人博客:https://fengchenglangzi.000webhostapp.com 微信bh19890922 QQ445718526.490425557 三.Nginx动静分离及负载均衡 3.1 Nginx安装 请参考:https://fengchenglangzi.000webhostapp.com/?p=511 亦

nginx反向代理(动静分离)

使用反向代理(动静分离)可以让nginx专注静态内容,把动态请求交给apache来处理,发挥各自的优势,而且整个架构更加清晰: 这里假设你已经搭建好了nginx环境; 为了简单起见,就不用源码编译安装了,直接使用apt方式安装,不影响说明: apt-get install apache2 -y apt-get install libapache2-mod-php7.0 #php版本随意 修改apache的配置文件,首先端口不能跟nginx重复: 采用apt方式安装的apache需要改如下两个配置

Nginx+Tomcat+Keepalived+Memcache 负载均衡动静分离技术

一.概述 Nginx 作负载均衡器的优点许多,简单概括为: ①实现了可弹性化的架构,在压力增大的时候可以临时添加Tomcat服务器添加到这个架构里面去; ②upstream具有负载均衡能力,可以自动判断下面的机器,并且自动踢出不能正常提供服务的机器: Keepalived 可实现 Nginx负载均衡器双机互备,任意一台机器发生故障,对方都能够将虚拟IP接管过去. Memcache可以实现Tomcat服务器的Sission共享整个拓补如下: 注意: 1.由于服务器有限,IP相同的为同一台机.只是端

haproxy实现的web反向代理,动静分离,以及基于keepalived实现的haproxy的高可用

   haproxy于Nginx一样都是做反向代理,但是与其相比,haproxy更专注于web代理.HAProxy是单进程多请求,也支持多进程,HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接.       haproxy功能的实现全部基于配置文件,所以我们需要了解很多的配置指令,玩转指令,再结合实际情况,我们就玩转了haproxy,其实haproxy的配置也很简单,下面我们一起简单认识和了解一些haproxy的基本功能和相关知识.         CentOS6.5自带的rpm

nginx+tomcat实现反向代理的负载均衡

nginx+tomcat实现反向代理的负载均衡 安装java环境 server12: [[email protected] ~]# sh jdk-6u32-linux-x64.bin [[email protected] ~]# mv jdk1.6.0_32/ /usr/local/ [[email protected] ~]# cd /usr/local/ [[email protected] local]# mv jdk1.6.0_32/ java [[email protected] lo

Nginx+Tomcat实现负载均衡、动静分离

Nginx+Tomcat实现负载均衡.动静分离 ? 注:本demo是在windows下实现的,只是为初学者提供一个最简单的demo.步骤非常简单 ? JDK.Tomcat.Nginx的下载在此不再叙述 在cmd下进入nginx根目录,执行nginx命令,如下: ? 此时打开http://localhost便可看到欢迎页面. Nginx的主配置文件为conf/nginx.conf,我们可以在此查看端口等简单配置,默认端口为80. ? 重新打开一个cmd,进入nginx根目录:执行nginx –s