Nginx+Tomcat 配置动静分离及负载均衡

Nginx+Tomcat 配置动静分离及负载均衡

  1. 为什么要用nginx+tomcat动静分离
      主要是nginx处理静态页面的效率远高于tomcat的处理能力,如果tomcat的请求量为1000次,则nginx的请求量为6000次,tomcat每秒的吞吐量为0.6M,nginx的每秒吞吐量为3.6M,可以说,nginx处理静态资源的能力是tomcat处理能力的6倍,优势可见一斑。

  2. 动静分离原理
      服务端接收来自客户端的请求中,有一部分是静态资源的请求,例如html,css,js和图片资源等等,有一部分是动态数据的请求。因为tomcat处理静态资源的速度比较慢,所以我们可以考虑把所有静态资源独立开来,交给处理静态资源更快的服务器例如nginx处理,而把动态请求交给tomcat处理。
      我们在机器上同时安装了nginx和tomcat(或者分两台机器做),把所有的静态资源都放置在nginx的webroot目录下面,把动态请求的程序都放在tomcat的webroot目录下面,当客户端访问服务端的时候,如果是静态资源的请求,就直接到nginx的webroot目录下面获取资源,如果是动态资源的请求,nginx利用反向代理的原理,把请求转发给tomcat进行处理,这样就实现了动静分离,提高了服务器处理请求的性能。

配置实例

环境说明:

nginx反向代理服务器的ip是192.168.32.125

存放静态资源的服务器IP是192.168.32.130,部署了两个nignx,端口分别是80和81

存放动态资源的服务器IP是192.168.32.135,部署了两个tomcat,端口分别是8080和8081

#配置测试页面
#静态页面
[root@localhost ~]# cat /usr/local/nginx/html/index.html
nginx static page.


#动态页面
[root@localhost tomcat]# cat webapps/test/index.jsp 
<html>
<head>
        <title>test page</title>
</head>
<body>
        <%
            out.println("tomcat dynamic page.....8080");
        %>
</body>
</html>

访问测试页面



配置nginx反向代理服务器


#http中配置
......
#gzip  on;

    upstream static {
        server 192.168.32.130:80 weight=3;
        server 192.168.32.130:81 weight=1;
    }
    upstream dynamic {
        server 192.168.32.135:8080 weight=2;
        server 192.168.32.135:8081 weight=1;
    }




    server {
        listen       80;
        server_name  localtion;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://static;
        }

        location ~ \.(jsp|do)$ {
            proxy_pass http://dynamic;
        }
......



访问

刷新两次,又访问到了8081,确实实现了负载均衡

posted @ 2020-08-13 18:01  EverEternity  阅读(260)  评论(0编辑  收藏  举报