• tomcat+nginx 反向代理 动静分离


    1.环境配置


    安装tomcat,直接压缩包解压就行。


    2.运行环境

    nginx安装完成并启动过后,在浏览器直接输入Linux系统的IP地址,即可访问,如下所示:



    3.配置解析



    这段代码是在配置文件中的server中,一个server相当于一个代理服务器,可以配置多个server。

    里面几个属性的意思分别是:

    listen:代表当前代理服务器的访问端口号,默认是80端口。如果要配置多个server,这里的默认端口需要改变,要不然系统不知道进入哪个代理服务。

    server_name:表示代理服务需要转发的地址,默认是localhost。

    location:表示匹配客户端发送请求的路径,这里“/”代表所有请求的路径都能匹配。

    root:表示请求别匹配到后,会在这个文件夹内寻找相应的文件,root对后面静态资源的处理很重要。

    index:如果代理没有指定主页,将默认进入index配置下寻找主页,可以配置多个,第一个主页找不到,访问第二个,以此类推。

    error_page:代表发生错误后进入的相关错误页面,下面的location也是处理错误的相关配置。


    3.配置转发tomcat

    转发tomcat的配置很简单,只需要在原来的配置上面修改两个地方,如下:

     
    这里配置的proxy_pass属性表示代理路径,nginx可以直接转发到该链接。

    只配置了一个server情况下,server_name可有可无,系统不会加载该配置。有多个server情况下,server_name必须要配置,nginx服务会根据该配置匹配。

    nginx支持热部署,修改配置文件过后,不需要重启服务生效,只需要让nginx重新加载一下即可,可以输入“nginx -t”来检查错误


    访问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





  • 相关阅读:
    3Sum
    Longest Common Prefix
    Integer to Roman
    Roman to Integer
    Container With Most Water
    String to Integer (atoi)
    Regular Expression Matching
    codeforces-873C. Strange Game On Matrix[模拟]
    hdu-5927 Auxiliary Set
    Codeforces-869 C. The Intriguing Obsession [组合数学]
  • 原文地址:https://www.cnblogs.com/tyk3201/p/12027295.html
Copyright © 2020-2023  润新知