vlambda博客
学习文章列表

案例:部署tomcat及负载均衡

会不会有那么一天,生活可以简单到每天清早踏上一辆载着鲜花的脚踏车,微笑着穿过窄窄的街巷,为爱花的人送去芬芳,为需要知识的你送去帮助。


简介

        在前面已经学习了Nginx服务器的安装配置,本章主要采用案例课的形式介绍Tomcat及Nginx+Tomcat负载均衡群集。Tomcat案例首先介绍其应用场景,然后重点介绍Tomcat的安装配置。Nginx+Tomcat负载均衡群集案例是应用于生产环境下的一套可靠的Web站点解决方案。


本章重点

  • 安装配置 Tomcat

  • 搭建Nginx+Tomcat负载均衡群集



                        理论讲解

一,tomcat知识点

    1)Tomcat简介

        名称由来:Tomcat最初是由Sun的软件构架师詹姆斯邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache 软件基金会。由于大部分开源项目OReilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(公猫)。而OReilly 出版的介绍Tomcat的书籍的封面也被设计成了一个公猫的形象。而Tomcat的Logo兼吉祥物也被设计成了一只公猫。

        其实Tomcat最早在开始研发的时候并不叫这个名字,早期Tomcat项目的名字叫Catalina,所以当我们安装完Tomcat后会发现安装路径下面有很多和Catalina有关的目录和文件,而这些文件通常也是我们使用或者配置Tomcat的重要文件。

    2)应用场景

        Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。一般来说,Tomcat 虽然和Apache 或者Nginx这些Web服务器一样,具有处理HTML页面的功能,然而由于其处理静态HTML的能力远不及Apache 或者Nginx,所以Tomcat 通常是作为一个Servlet和JSP容器,单独运行在后端。


二,部署Tomcat

    1.实施准备

    1)   关闭防火墙

    

    2)在安装Tomcat之前必须先安装JDK。JDK的全称是Java Development Kit,是Sun公司免费提供的Java语言的软件开发工具包,其中包含Java虚拟机(JVM)。编写好的Java源程序经过编译可形成Java字节码,只要安装了JDK,就可以利用、VM解释这些字节码文件,从而保证了Java的跨平台性。

        在平台兼容性方面,JDK作为解释字节码文件并据此调用操作系统APl实现对应功能的Java虚拟机,与操作系统类型和平台位数密切相关,因此存在不同类型的版本,而Tomcat也具有上述特征,默认情况下JDK已经安装,所以需要预先下载Tomcat,本章中所使用的Tomcat 软件的源码包为apache-tomcat-7.0.54.tar.gz 

        2.查看JDK是否安装

    运行java-version命令查看Java是否安装。如果没有安装需要自行下载安装。(一般的Centos6操作系统需要单独安装JDK和配置运行环境,Centos7及Centos7以上操作系统都自动安装好了JDK和配置好了运行环境)

案例:部署tomcat及负载均衡

    3,解压Tomcat

案例:部署tomcat及负载均衡

    4.将tomcat移动到/usr/local 下并改名为tomcat

    

案例:部署tomcat及负载均衡

    5.启动tomcat

案例:部署tomcat及负载均衡

Tomcat默认运行在8080端口。

停止tomcat服务执行    /usr/local/tomcat/bin/shutdown.sh 即可

6.打开浏览器输入虚拟机IP进行测试访问


案例:部署tomcat及负载均衡


7.tomcat配置相关说明

案例:部署tomcat及负载均衡

(1)主要目录说明。

  • --bin/:存放Windows或Linux平台上启动和关闭Tomcat的脚本文件。

  • --conf/:存放Tomcat 服务器的各种全局配置文件,其中最重要的是server.xml和web.xml。

  • -lib/:存放Tomcat 运行需要的库文件(JARS)。

  • --logs:存放Tomcat执行时的LOG文件。

  • --webapps;Tomcat的主要Web发布目录(包括应用程序示例)。

  • --work:存放JSP编译后产生的class文件。


    2)配置文件说明

案例:部署tomcat及负载均衡

catalina.policy:权限控制配置文件。

catalina.properties:Tomcat 属性配置文件。

context.xml:上下文配置文件。

logging.properties:日志log相关配置文件。

server.xml:主配置文件。

tomcat-users.xml:manager-gui 管理用户配置文件(Tomcat 安装后提供一个manager-gui的管理界面,通过配置该文件可以开启访问)。

web.xml:Tomcat的servlet.servlet-mapping、filter、MIVME等相关配置。


    8.Tomcat主配置文件说明

整个server.xml由以下结构构成:<Server>、<Service>、<Connector/>、<Engine>、<Host>、

<Context>、</Context>、</Host>、</Engine>、</Service>和</Server>


        server.xml为Tomcat的主要配置文件,通过配置该文件,可以修改Tomcat的启动端口,网站目录、虚拟主机、开启https等重要功能。

整个server.xml由以下结构构成及说明:

案例:部署tomcat及负载均衡

案例:部署tomcat及负载均衡

<Connector/>:Tomcat启动的默认端口号8080,可以根据需要进行更改


案例:部署tomcat及负载均衡

<Host>:为Tomcat定义虚拟主机时的配置及日志配置


9.Tomcat Server的组成部分说明

1)Server Server 元素代表了整个Catalina的servlet容器。


2)Service Service是这样一个集合:它由一个或者多个Connector,以及一个Engine(负责处理所有Connector所获得的客户请求)组成。


3)Connector

一个Connector 在某个指定端口上侦听客户请求,并将获得的请求交给Engine来处理,从Engine处获得回应并返回客户。

Tomcat 有两个典型的Conmector,一个直接侦听来自browser的http请求,一个侦听来自其他WebServer的请求。


4)Engine

Engine下可以配置多个虚拟主机Virtual Host,每个虚拟主机都有一个域名。

当Engine获得一个请求时,它把该请求匹配到某个Host上,然后把该请求交给该Host来处理。

Engine有一个默认虚拟主机,当请求无法匹配到任何一个Host上的时候,将交给该默认Host来处理。


5)Host Host 代表一个Virtual Host,即虚拟主机,每个虚拟主机和某个网络域名Domain Name相匹配。每个虚拟主机下都可以部署(deploy)一个或者多个Web App.每个WebApp 对应于一个Context.

有一个Context path。当Host获得一个请求时,将把该请求匹配到某个Context上,然后把该请求交给该Context来处理,匹配的方法是“最长匹配”,所以一个path==的Context将成为该Host的默认Context。

所有无法和其他Context的路径名匹配的请求都将最终和该默认Context匹配。

6)Context

一个Context对应于一个Web Application,一个Web Application 由一个或者多个Servlet组成。



9.建立java的Web站点

(1)在根目录下建立一个www目录,用于存放网站文件。

在www目录下建立一个index.jsp的测试页面。

案例:部署tomcat及负载均衡

(2)修改Tomcat的server.xml文件。

    定义一个虚拟主机,并将网站文件路径指向已经建立的/www,在host段增加context段。


案例:部署tomcat及负载均衡

案例:部署tomcat及负载均衡

10.优化tomcat命令,关掉服务并重启,打开测试页面

    1)优化tomcat命令。

案例:部署tomcat及负载均衡

    2)关掉服务再启动服务

案例:部署tomcat及负载均衡


3)访问测试页面

案例:部署tomcat及负载均衡


三,部署Nginx+Tomcat负载均衡群集

    通常情况下,为了避免单点故障,我们的Tomcat服务器远远不止一台

    Nginx是一款非常优秀的http服务器软件,它能够支持高达50000个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU等系统资源消耗非常低。目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,来提升整个站点的负载并发能力。

    部署环境

服务器
IP地址
网站页面
tomcat1/Cetnos01
192.168.100.10

Hello Tomcat    

tomcat2/Centos02
192.168.100.20 Hello Linux
nginx/Centos03
192.168.100.30

           

    1.tomcat2的配置方法与tomcat1的配置方法基本一致,为了区分,tomcat2的网站默认页面写入    Hello Linux


    测试页面:

案例:部署tomcat及负载均衡

2.    在nginx服务器上安装nginx,反向代理tomcat2个站点,并实现负载均衡

    1)安装相关依赖

案例:部署tomcat及负载均衡

    2)解压并安装nginx

案例:部署tomcat及负载均衡

    3)编译并安装

案例:部署tomcat及负载均衡

    4)配置nginx主配置文件支持反向代理以及负载均衡

案例:部署tomcat及负载均衡

    5)测试主配置文件是否有错


案例:部署tomcat及负载均衡

    6)启动nginx服务

案例:部署tomcat及负载均衡

     7)查看nginx服务状态

案例:部署tomcat及负载均衡

     8)访问nginx页面

案例:部署tomcat及负载均衡

不断刷新浏览器页面,我们会发现页面效果在不断变化,这便是负载均衡!





故事很短,道理很长,学无止境,不忘初心,砥砺前行