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

1.负载均衡
  共有三个tomcat,更改第二个tomcat配置,打开Tomcat的conf目录下的server.xml:
这里写图片描述
这里写图片描述
这里写图片描述
  即修改第二个Tomcat的启动端口为18080;对于第三个Tomcat修改其配置,修改启动端口为28080:
这里写图片描述
这里写图片描述
这里写图片描述
  然后关闭防火墙(如果要开启防火墙,需要设置防火墙,允许8080、18080、28080端口进行TCP连接:
这里写图片描述
  然后启动三个Tomcat,启动过程如下:
这里写图片描述
  分别访问8080、18080、28080端口,其中访问8080端口界面如下,说明第一个Tomcat启动成功:
这里写图片描述
  然后,为了区分到底访问的是哪一台Tomcat,修改三个Tomcat的默认页面,修改第一个Tomcat默认页面为:
这里写图片描述
  然后配置Nginx来实现负载均衡,需要配置好Nginx的配置文件:
这里写图片描述
  其中,安装Nginx步骤为:
  下载模块依赖性Nginx需要依赖下面3个包:gzip模块需要zlib库;rewrite 模块需要pcre库;ssl功能需要openssl库。
编译安装openssl:

tar zxvf openssl-fips-2.0.9.tar.gz
cd openssl-fips-2.0.9
./config && make && make install

编译安装pcre:

tar zxvf pcre-8.36.tar.gz
cd pcre-8.36
./configure && make && make install

编译安装zlib:

tar zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure && make && make install

最后安装nginx

tar zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
./configure && make && make install

  安装完成后,启动nginx:
这里写图片描述
  发现报错:error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory。
解决办法:先找到libpcre.so.1所在位置,然后进行软链接,解决方法:

whereis libpcre.so.1
ln -s /usr/local/lib/libpcre.so.1 /lib64
sbin/nginx   

这里写图片描述
  查看是否已启动nginx,显示已经启动:
  然后输入:localhost/index.jsp查看运行状况:第一次访问,发现访问的是Tomcat0上的程序,如下图所示。
这里写图片描述
  第二次访问,发现访问的是Tomcat2上的程序;第三次访问,发现访问的是Tomcat1上的程序。
  利用Nginx实现了负载均衡的Tomcat集群。经过不断的刷新,发现访问Tomcat2的概率大概是Tomcat1的2倍,Tomcat3的概率大概是Tomcat1的3倍,是因为在Nginx中配置的三台Tomcat的权重起的作用。

2.动静分离
  建立JSP动态页面如下:
这里写图片描述
  加载Tomcat根目录下webapps/xxx/index.jsp,启动Tomcat测试是否能够访问。
这里写图片描述
  对Nginx进行配置:通过配置location,对访问的请求进行拦截。
(1) 全部的请求均转发给Tomcat进行处理。
这里写图片描述
(2) 个别的请求比如:html,js,css等静态资源请求,由Nginx进行处理。
这里写图片描述
  root /usr/local/webapps;指定Nginx访问的目录,即静态资源所在的目录。
  expires 30d; 指定资源文件在客户端浏览器的缓存时间,30d指的是30天,1h指的是1小时。然后,进行测试Nginx动静分离。
  启动Nginx,访问网址:localhost/xxx/index.jsp如下图所示:
这里写图片描述
  可以看到图片与访问Tomcat端口加载的不一样。这是因为静态资源访问请求已经被Nginx拦截,由Nginx进行处理。在Nginx服务器的/usr/local/webapps 目录下放入图片资源,与Tomcat目录下图片不一样。index.jsp页面能够显示,说明动态的请求已经转发给Tomcat,Tomcat对index.jsp进行了解析。
  可以得出已经实现了Nginx动静分离的功能,在配置动静分离后,用户请求定义的静态资源,默认请求Nginx的发布目录,而不会到后端请求,这样可以提高网站响应速度,减轻真实Web服务器的负载压力。
  本次动静分离得到的效果为:Nginx处理图片、html、JS、CSS等静态文件,tomcat处理jsp、servlet等动态请求。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值