• 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已实现了反向代理动静分离。

  • 相关阅读:
    Mongodb复制集配置
    Alluxio部署(集群模式)
    【性能-windows端口限制】TPS上不去,应用无压力只有cpu5%,tomcat线程最高1500,增大并发出现connect 报错
    SQL优化(三)—— 索引、explain分析
    vbs,修改文件名
    Fiddler的详细介绍
    Fiddler 抓包工具总结
    从零开始学习jQuery (一) 开天辟地入门篇
    Jmeter关联之正则表达式提取器(完整版)
    Jmeter实现百分比业务比例
  • 原文地址:https://www.cnblogs.com/L-H-R-X-hehe/p/3828911.html
Copyright © 2020-2023  润新知