当前位置 主页 > 服务器问题 > nginx问题汇总 >

    详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南

    栏目:nginx问题汇总 时间:2018-11-27 16:53

    Nginx是一种服务器软件,也是一种高性能的http和反向代理服务器,本篇文章主要介绍了Nginx + Tomcat 反向代理 负载均衡 集群 部署指南,有兴趣的可以了解一下。

    Nginx是一种服务器软件,也是一种高性能的http和反向代理服务器,同时还是一个代理邮件服务器。也就是说,我们在Nginx上可以发布网站,可以实现负载均衡(提高应答效率,避免服务器崩溃),还可以作为邮件服务器实现收发邮件等功能。而最常见的就是使用Nginx实现负载均衡。

    Nginx与其他服务器的性能比较:

    Tomcat服务器面向Java语言,是重量级的服务器,而Nginx是轻量级的服务器。Apache服务器稳定、开源、跨平台,但是Apache服务器不支持高并发,Nginx能支持处理百万级的TCP连接,10万以上的并发连接,并且是一个很好的跨平台服务器。
    Nginx主要优点有可以实现高并发、部署简单、内存消耗少、成本低等,主要缺点有rewrite功能不够强大,模块没有Apache的多。

    本篇主要讲解 Nginx + Tomcat 反向代理和负载均衡的部署,以通俗实用为主。本篇文章每个部分之间没有太大关系,可根据需求分开学习。

    下来看一下Nginx反向代理的过程:

    Nginx反向代理的过程

    Nginx负载均衡的过程(会自动选择压力较小的服务器进行访问):

    Nginx负载均衡的过程

    可以看出,负载均衡是通过反向代理的原理实现的,所以也称 反向代理的负载均衡 。所以我们会部署负载均衡,那么反向代理也就会了。

    总的来说,负载均衡实现的方式分为软件实现和硬件实现两种,硬件实现运行的效率非常高,但是对应的成本也非常高。软件实现运行效率不如硬件,但是成本相对来说低得多。而使用Nginx服务器实现负载均衡,那么就是通过软件的方式来实现负载均衡,并且Nginx本身支持高并发等。故而使用Nginx服务器实现负载均衡,能大大节约企业的成本,并且由于Nginx是服务器软件,其执行效率也是非常高。本篇的目的也就是帮助大家使用Nginx实现负载均衡。

    负载均衡的核心就是建立一个服务器集群,然后用户首先访问到第三方代理服务器(这里我们选用Nginx),然后由代理服务器选择一个集群中的服务器,然后将请求引入选定的服务器(这里我们选用Tomcat)。

    如下图,通过反向代理我们实现下面的负载均衡,这里我们 假定 四台服务器公网的ip,一台做代理服务器,三台做负载均衡下的服务器:

    具体实现负载均衡

    好了,整体架构已经基本上清晰了,下来我们来具体实现下:

    提示:本篇我们基本上都是使用SSH进行相关操作的,Windows下可以尝试安装PuTTY,Mac下直接使用系统自带的终端工具即可。

    1.Linux下搭建Nginx服务器

    我们在 192.168.2.20 这台服务器上搭建Nginx服务器:

    1)下载Nginx //www.iis7.com/softs/25646.html

    2)上传服务器Nginx安装包

    $ scp ~/Downloads/nginx-1.10.2.tar.gz root@192.168.2.20:/usr/local

    3)安装Nginx

    $ ssh root@192.168.2.20             //SSH连接# yum -y install gcc gcc-c++ autoconf automake  //gcc、gcc-c++的库文件# yum install -y pcre pcre-devel         //安装Nginx依赖包# yum install -y zlib zlib-devel

    注意:-y表示遇到判断全部yes,autoconf表示自动配置,automake表示自动编译。

    # cd /usr/local# tar -zxvf nginx-1.10.2.tar.gz         //解压缩# cd nginx-1.10.2                //切换到该目录下# ./configure                  //配置# make# make install                 //安装