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进行处理,这样就实现了动静分离,提高了服务器处理请求的性能。

3.系统简介及配置
IP地址 主机名 运行服务 系统版本 服务版本
172.19.150.104 nginx Nginx centos7.3.1611 nginx/1.6.2
172.19.150.105 tomcat Tomcat/jdk centos7.3.1611 tomcat7/jdk1.7
备注:nginx和tomcat等服务之前都已经安装好了。这里不再重复。(默认都是80端口)

二、 配置动静分离

1. 配置nginx

  Nginx的主配置文件内有include /etc/nginx/conf.d/*.conf;所以我在/etc/nginx/conf.d/目录下创建local.conf配置文件

[root@nginx conf.d]# vim local.conf 

server {
listen 80;              ##监听端口
server_name 172.19.150.104;
access_log /opt/nginx_log/local.log main;
location / {
index index.html;
root /var/www/html; ##主目录
}

location ~ \.(gif|jpg|jpeg|png|bmp|swf)$ {      ##以括号内结尾的请求,都请求nginx
root /var/www/html;                     ##主目录
                }

location ~ \.(jsp|do)$ {                        ##以.jsp和.do结尾的,都请求tomcat
proxy_pass http://172.19.150.105;           ##tomcat的IP地址
expires 1h;                                 ##缓存一小时
                }
}
注意:如果tomcat的端口不为80在IP后边要加端口号。不能指定从目录

三、 验证

1.配置nginx

在nginx主目录里编写index.html(属于静态页面)

[root@nginx ~]# vim /var/www/html/index.html 

nginx
2.配置tomcat

在tomcat主目录里编写动态页面test1.jsp

[root@tomcat ~]# vim /data/webapps/test1.jsp 




3.验证是否成功

①直接访问nginx


nginx+tomcat动静分离实现负载均衡_第1张图片

②直接访问tomcat的jsp内容


nginx+tomcat动静分离实现负载均衡_第2张图片

③通过nginx访问tomcat的jsp


nginx+tomcat动静分离实现负载均衡_第3张图片

所以nginx+tomcat的动静分离成功

你可能感兴趣的:(nginx+tomcat动静分离实现负载均衡)