TomCat 服务器集群 Nginx+tomcat

我们在运行一个简单的项目时,随便捞一个运用广泛的服务器即可,前端、后台一股脑丢给服务器就能搞定,而且所要处理的业务也不多看不出有什么差别。但是呢,当我们运行较大型的项目时,不光要考虑请求并发、服务器负载问题,我们还要考虑请求的处理速度。这就要来说说今天的Nginx+TomCat集群了。

1,Nginx: 处理静态资源较快(html、js、css、图片等);    TomCat:  适合处理后台请求 ; OK, 那就让动静请求分开,各自发挥自己的长处岂不是很美!

           2,至于服务器负载问题,俗话说人多力量大,就多来点TomCat服务器呗。(而且挂了一个也不影响  ~.~)

来两张图直观的看看吧:

 

 

一、来进入正题吧,先说下实施原理:

1, Nginx 像一个网关一样,作为所有请求与响应的进出口,接受所有用户请求,并返回所有后台响应。

2, Nginx 接收到请求之后判断,静态请求自己处理,动态请求交个TomCat服务器集群处理。

3, TomCat服务器集群接收到请求之后,会轮换制进行处理

4, 请求处理后交由Nginx返回

二、具体实施:

一般大型项目运行在Linux系统上,在W上原理一样,下边就用Linux做一个简单的例子

1、安装准备 (自行安装Centos7,三台虚拟机(分别跑Nginx服务器,和另外两台Tomcat服务器))

1.1  首先由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,这些依赖库主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel 所以执行如下命令安装

           $   yum install gcc-c++  
           $   yum install pcre pcre-devel  
           $   yum install zlib zlib-devel  
           $   yum install openssl openssl--devel 

2、安装Nginx

安装之前,最好检查一下是否已经安装有nginx

    $   find -name nginx  

如果系统已经安装了nginx,那么就先卸载

    $   yum remove nginx  

首先进入/usr/local目录

    $   cd /usr/local  

从官网下载最新版的nginx

    $   wget http://nginx.org/download/nginx-1.15.6.tar.gz  

解压nginx压缩包

    $   tar -zxvf nginx-1.15.6.tar.gz  

会产生一个nginx-1.15.6目录,这时进入nginx-1.15.6目录

    $   cd  nginx-1.15.6

接下来安装,使用--prefix参数指定nginx安装的目录,make、make install安装

    $   ./configure  $默认安装在/usr/local/nginx   
               $   make  
               $   make install 
          如果没有报错,顺利完成后,最好看一下nginx的安装目录

    $   whereis nginx
         安装完毕后,进入安装后目录(/usr/local/nginx)可以启动或停止它了。
         启动 ./nginx
         停止 ./nginx -s stop

3、 负载均衡(动静分离配置参考Windows配置 )

编辑配置文件 vi /usr/local/nginx/conf/nginx.conf

3.1在http节点下配置如下: // 配置Tomcat集群

3.2 在server节点下配置如下:

 

 

3.3.1,over 测试一下: 在各个tomcat下部署项目test,在项目下新建index.jsp,内容如下

<%@ page language="java" pageEncoding="utf-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>用户列表</title>

</head>

<body>

<%  

        out.println("["+request.getLocalAddr()+":" +request.getLocalPort()+"]" + "<br/>session id:" + session.getId());   

    %>

</body>

</html>

3.3.2 浏览器访问http://localhost/test,可以看到一次请求会把请求分发给不同的tomcat

 

4.  动静分离配置

4.1 在server节点下配置

#静态资源类型:图片等

location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ {

#存放的位置

root images;

#过期时间

expires 30d;

}

#静态资源类型:js,css

location ~ .*\.(js|css)?$ {

#存放位置

root resources;

#过期时间

expires 1h;

}

4.2实验动静分离

假设test应用需要一张图片, 随便搞一张来,放到Nginx制定存放位置,在Tomcat的项目中只指向该图片相对路径,访问即可看到效果哦~

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值