首页 > 代码库 > Nginx+Tomcat群集服务

Nginx+Tomcat群集服务

一、简介

TomcatApache 软件基金会(Apache SoftwareFoundation)的Jakarta 项目中的一个核心项目,由ApacheSun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

诀窍是,当配置正确时,Apache HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,TomcatIISWeb服务器一样,具有处理HTML页面的功能,另外它还是一个ServletJSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为9.0

 

 

二、实验搭建

1)实验环境

操作系统:CentOS6.5(三台)、Windows7旗舰版(一台)

软件包:

JDKjdk-7u65-linux-x64.gz

下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html

Tomcatapache-tomcat-7.0.54.tar.gz

下载地址:http://tomcat.apache.org/

 

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

         在平台兼容性方面,JDK作为解释字节码文件并据此调用操作系统API实现对应用功能的Java细腻集,于操作系统类型和跨平台性。

  在平台兼容性方面,JDK作为解析字节码文件并据此调用操作系统API实现对应功能的java细腻集,与操作系统类型和平台性位数密切相关,因此存在不同类型的版本,而Tomcat也具有上述特征,所以我们今天的实验需要需先下载JDKTomcat

2)安装JDK,配置Java环境

[root@localhost~]# tar xf jdk-7u65-linux-x64.gz

# JDK包解压

[root@localhost~]# mv jdk1.7.0_65/ /usr/local/java

# 将解压后生成的jdk1.7.0_65文件移动到/usr/local/下并重命名为java

[root@localhost~]# vim /etc/profile.d/java.sh

export JAVA_HOME=/usr/local/java                  设置一个变量为JAVA的根目录

export PATH=$PATH:$JAVA_HOME/bin           

# /etc/profile.d/下建立java.sh脚本,内容如上。

[root@localhost~]# source /etc/profile.d/java.sh

# java.sh脚本导入到环境变量,使其生效。

[root@localhost~]# java -version

java version "1.7.0_65"

Java(TM) SE Runtime Environment (build1.7.0_65-b17)

Java HotSpot(TM) 64-Bit Server VM (build24.65-b04, mixed mode)

# 运行Java -version 命令或者javac -version命令查看java版本是否和之前安装的一致。至此,java环境已经配置完成。

# 如果安装操作系统有自带openjdk的话,需要卸载openjdk
[root@localhost/]#rpm -qa|grep jdk
java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64
java-1.6.0-openjdk-1.6.0.0.1-1.50.1.11.5.el6_3.x86_64
[root@localhost/]#rpm -e <java-XXXXX>

#rpm -a查询出来的两条卸载了。
#卸载完成后直接在使用java -version查询

3)安装Tomcat

[root@localhost~]# tar xf apache-tomcat-7.0.54.tar.gz

#解压apache-tomcat-7.0.54.tar.gz

[root@localhost~]# mv apache-tomcat-7.0.54/ /usr/local/tomcat7

[root@localhost~]# ls /usr/local/

bin games    java  lib64   sbin   src

etc include  lib   libexec share  tomcat7

# 解压后生成apache-tomcat-7.0.54文件,将该文件移动到/usr/local/,并改名为tomcat7.

[root@localhost~]# cd /usr/local/tomcat7/bin/

# 进入到/usr/local/tomcat/bin/

[root@localhostbin]# mv startup.sh tomcatstart.sh

# startup.sh重命名为tomcatstart.sh以防和其它服务脚本弄混。

[root@localhostbin]# mv shutdown.sh tomcatstop.sh

# shutdown.sh重命名为tomcatstop.sh以防和其它服务脚本弄混。

[root@localhostbin]# ln -s /usr/local/tomcat7/bin/* /usr/local/bin/

# 创建软连接,这样就可以不用输入冗长的绝对路径了(我们还可以直接输入绝对路径启用:[root@localhost ~]#/usr/local/tomcat7/bin/tomcatstart.sh

[root@localhostbin]# cd

[root@localhost~]# tomcatstart.sh

Using CATALINA_BASE:   /usr/local/tomcat7

Using CATALINA_HOME:   /usr/local/tomcat7

Using CATALINA_TMPDIR:/usr/local/tomcat7/temp

Using JRE_HOME:        /usr/local/java

Using CLASSPATH:       /usr/local/tomcat7/bin/bootstrap.jar:/usr/local/tomcat7/bin/tomcat-juli.jar

Tomcat started.

# 添加了软连接之后的tomcat就可以在任何目录中启动了,为我们的使用方便了许多。

[root@localhost~]# netstat -anpt | grep 8080

tcp        0     0 :::8080        :::*          LISTEN     2033/java    

技术分享

# 打开浏览器测试:http:192.168.25.28080/.如果出现如图1-1所示界面,则表示Tomcat已经配置启动成功了。

# 如果想关闭可以使用我们刚刚重命名之后的tomcatstop.sh/usr/local/tomcat7/bin/tomcatstop.sh命令。

 

4Tomcat配置相关说明

[root@localhost~]# cd /usr/local/tomcat7/

[root@localhosttomcat7]# ls

bin  lib      logs    RELEASE-NOTES  temp    work

conf LICENSE  NOTICE  RUNNING.txt   webapps

 

# Tomcat的主目录在本次实验中位于/usr/local/tomcat7/

#Tomcat主目录中个目录作用说明

binbin目录主要是用来存放tomcat的命令,主要有两大类,一类是以.sh结尾的(linux命令),另一类是以.bat结尾的(windows命令)。

重要:

很多环境变量的设置都在此处,例如可以设置JDK路径、TOMCAT路径

startup 用来启动tomcat

shutdown 用来关闭tomcat

 

confconf目录主要是用来存放tomcat的一些配置文件。

重要

server.xml可以设置端口号、设置域名或IP、默认加载的项目、请求编码

web.xml可以设置tomcat支持的文件类型

context.xml可以用来配置数据源之类的

tomcat-users.xml用来配置管理tomcat的用户与权限

Catalina目录下可以设置默认加载的项目

 

lib: lib目录主要用来存放tomcat运行需要加载的jar包。

例如,像连接数据库的jdbc的包我们可以加入到lib目录中来。

 

Logs: logs目录用来存放tomcat在运行过程中产生的日志文件,非常重要的是在控制台输出

         日志。(清空不会对tomcat运行带来影响)

windows环境中,控制台的输出日志在catalina.xxxx-xx-xx.log文件中

linux环境中,控制台的输出日志在catalina.out文件中

 

Temp: temp目录用户存放tomcat在运行过程中产生的临时文件。(清空不会对tomcat运行带来影响)

 

Webapps: webapps目录用来存放应用程序,当tomcat启动时会去加载webapps目录下的应

         用程序。可以以文件夹、war包、jar包的形式发布应用。

当然,你也可以把应用程序放置在磁盘的任意位置,在配置文件中映射好就行。

 

Work: work目录用来存放tomcat在运行时的编译后文件,例如JSP编译后的文件。

清空work目录,然后重启tomcat,可以达到清除缓存的作用。

 

[root@localhosttomcat7]# cd conf/

[root@localhostconf]# ll

总用量 204

drwxr-xr-x 3 root root   4096 8  28 14:43 Catalina

-rw------- 1 root root  12257 5  19 2014 catalina.policy

-rw------- 1 root root   6294 5  19 2014 catalina.properties

-rw------- 1 root root   1394 5  19 2014 context.xml

-rw------- 1 root root   3288 5  19 2014 logging.properties

-rw------- 1 root root   6536 5  19 2014 server.xml

-rw------- 1 root root   1530 5  19 2014 tomcat-users.xml

-rw------- 1 root root 163385 5  19 2014 web.xml

 

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

Catalina.ropertiesTomcat属性配置文件。

Context.xml:上下文配置

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

Serve.xml:主配置文件。

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

Web.xmlTomcatservletservlet-mappingfilterMME等相关配置。

 

5Tomcat注配置文件说明

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

         整个server.xml由一下结构构成<Server><Service><Connector><Engine><Host><Context></Context></Host></Engine></Service></Server>

         以下是默认安装后server.xml文件部分内容,其中<!--     -- >内的内容是注释信息,黑色斜体部分是我们需要注意和经常更改的部分。跟多详情请点击server.xml详解

<?xml version=‘1.0‘encoding=‘utf-8‘?>

<!--

 (the "License"); you may not use this file except incompliance with

  Seethe License for the specific language governing permissions and

 limitations under the License.

-->

<!-- Note:  A "Server" is not itself a"Container", so you may not

    define subcomponents such as "Valves" at this level.

    Documentation at /docs/config/server.html

 -->

<Server port="8005" shutdown="SHUTDOWN">

// Tomcat关闭端口,默认 只对本机地址开放, 可以在本机通过Telnet127.0.0.18005该端口,对Telnet进行关闭操作。

 <!-- Security listener. Documentation at /docs/config/listeners.html

 <!--APR library loader. Documentation at /docs/apr.html -->

      Documentation at /docs/jndi-resources-howto.html

 -->

 <GlobalNamingResources>

   <!-- Editable user database that can also be used by

        UserDatabaseRealm to authenticate users

   -->

              description="User databasethat can be updated and saved"

             pathname="conf/tomcat-users.xml" />

 </GlobalNamingResources>

 

      Documentation at /docs/config/service.html

  -->

 <Service name="Catalina">

 

        Java AJP  Connector:/docs/config/ajp.html

        APR (HTTP/AJP) Connector: /docs/apr.html

        Define a non-SSL HTTP/1.1 Connector on port 8080

   -->

    <Connector port="8080"protocol="HTTP/1.1"

              connectionTimeout="20000"

              redirectPort="8443" />

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

 

   <!-- A "Connector" using the shared thread pool-->

   <!-- Define a SSL HTTP/1.1 Connector on port 8443

        documentation -->

   <!--

               clientAuth="false"sslProtocol="TLS" />

    -->

<Connectorport="8009" protocol="AJP/1.3"redirectPort="8443" />

//Tomcat启动AJP1.3连接器时默认的端口号,可以根据需要进行修改

 

        on to the appropriate Host (virtual host).

        Documentation at /docs/config/engine.html -->

 

   <!-- You should set jvmRoute to support load-balancing via AJP ie :

   <Engine name="Catalina" defaultHost="localhost"jvmRoute="jvm1">

   -->

     <!--For clustering, please take a look at documentation at:

         /docs/cluster-howto.html  (simplehow to)

     <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

     -->

 

          via a brute-force attack -->

            resources under the key "UserDatabase".  Any edits

            available for use by the Realm. -->

       <Realm className="org.apache.catalina.realm.UserDatabaseRealm"

              resourceName="UserDatabase"/>

     </Realm>

//以下为Tomcat定义虚拟主机时的配置及日志配置。

     <Host name="localhost" appBase="webapps"

           unpackWARs="true" autoDeploy="true">

 

       <!-- SingleSignOn valve, share authentication between webapplications

            Documentation at: /docs/config/valve.html -->

       <!--

       <ValveclassName="org.apache.catalina.authenticator.SingleSignOn" />

        -->

 

        <!--Access log processes all example.

             Documentation at:/docs/config/valve.html

            Note: The pattern used is equivalent to using pattern="common"-->

       <ValveclassName="org.apache.catalina.valves.AccessLogValve"directory="logs"

              prefix="localhost_access_log." suffix=".txt"

              pattern="%h %l %u %t &quot;%r&quot; %s %b" />

 

     </Host>

   </Engine>

 </Service>

</Server>

           

6Tomcat Server的组成部分说明

1.1 - Server

A Server element represents the entireCatalina servlet container. (Singleton)

1.2 - Service

A Service elementrepresents the combination of one or more Connector components that share asingle Engine

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

1.3 - Connector

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

TOMCAT 有两个典型的 Connector,一个直接侦听来自 browser http 请求,一个侦听来自其它 WebServer 的请求

Coyote Http/1.1Connector 在端口8080处侦听来自客户browser http 请求

Coyote JK2 Connector 在端口8009处侦听来自其它 WebServer(Apache)servlet/jsp代理请求

1.4 - Engine

The Engine elementrepresents the entire request processing machinery associated with a particularService

It receives andprocesses all requests from one or more Connectors

and returns thecompleted response to the Connector for ultimate transmission back to theclient

Engine 下可以配置多个虚拟主机 Virtual Host,每个虚拟主机都有一个域名当 Engine 获得一个请求时,它把该请求匹配到某个 Host 上,然后把该请求交给该Host 来处理

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

1.5 - Host

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

Context,有一个 Contextpath

Host 获得一个请求时,将把该请求匹配到某个 Context 上,然后把该请求交给该 Context 来处理

匹配的方法是最长匹配,所以一个 path==""Context将成为该 Host 的默认Context 所有无法和其它 Context 的路径名匹配的请求都将最终和该默认 Context 匹配

1.6 - Context

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

Context 在创建的时候将根据配置文件 $CATALINA_HOME/conf/web.xml

$WEBAPP_HOME/WEB-INF/web.xml 载入 Servlet

Context 获得请求时,将在自己的映射表(mapping table)中寻找相匹配的 Servlet类如果找到,则执行该类,获得请求的回应,并返回

7)建立Javaweb站点

[root@localhost~]# mkdir -pv /web/webapp1/

mkdir: 已创建目录"/web"

mkdir: 已创建目录"/web/webapp1/"

# 在根目录下建立一个web目录,并在里面建立一个webapp1目录,用于存放网站文件。

 

[root@localhost~]# vim /web/webapp1/index.jsp

<%@ page language="java"import="java.util.*" pageEncoding="UTF-8"%>

<html>

       <head>

                <title>JSP test1page</title>

       </head>

       <body>

                <% out.println("Welcomto test site,http://www.test1.com");%>

       </body>

</html>

# /web/webapp1/创建一个index.jsp文件,并将以上内容输入到里面

 

[root@localhost~]# vim /usr/local/tomcat7/conf/server.xml

<Host name="localhost"  appBase="webapps"

           unpackWARs="true" autoDeploy="true">

           <Context docBase="/web/webapp1" path=""reloadable="false">

           </Context>

# 修改Tomcatserver.xml文件

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

技术分享


# 通过浏览器访问http://192.168.25.2:8080/,出现如图1-2所示页面,说明该Tomcat站点已经配置成功,并且已经能够运行jsp了。

 

7Nginx+Tomcat负载均衡集群

 

通常情况下,一台Tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独应用于生产环境下,所以我们需要一套更可靠的解决方案来完善Web站点架构。

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

         本案例我们将讲解以Nginx作为负载均衡器,Tomcat作为应用服务器的负载均衡群的设置方法。网站拓补架构如下图所示。

技术分享

                       案例环境

主机

操作系统

IP地址

主要软件

Tomcat1

CentOS6.5 x86_x64

192.168.25.2

jdk-7u65-linux-x64.gz

apache-tomcat-7.0.54.tar.gz

Tomcat2

CentOS6.5 x86_x64

192.168.25.3

jdk-7u65-linux-x64.gz

apache-tomcat-7.0.54.tar.gz

Nginx

CentOS6.5 x86_x64

192.168.25.4

nginx-1.6.0.tar.gz

Client

Windows7旗舰版

192.168.25.5

IE浏览器

 

我们刚刚搭建了Tomcat1,本案例中需要用到两太Tomcat服务器,所以我们要按照上面的方法重新搭建一台Tomcat2服务器。

搭建Tomcat2服务器的时候应注意:

1)、安装JDK,配置JAVA环境,版本与Tomcat1server 保持一致。

2)、安装配置Tomcat,版本与Tomcat1保持一致。

3)、创建/web/weapp1目录,修改Tomcat配置文件sever.xml,将网站文件目录更改到/web/webapp1/路径下。

4)、在/web/weapp1/路径下建立index.jsp为了区别将测试页面index.jsp的内容更改如下

<%@ pagelanguage="java" import="java.util.*"pageEncoding="UTF-8"%>

<html>

        <head>

                <title>JSPtest2page</title>

        </head>

        <body>

                <% out.println("Welcomto test site,http://www.test2.com");%>

        </body>

</html>

搭建Tomcat2服务器请参照上面Tomcat1步骤这里不再做过多赘述。

 

         我们还有一中简便的方法搭建Tomcat2服务器,就是使用scp命令将Tomcat1中的文件复制过来进行简单的修改,这种方法比较简便,下面给大家演示scp命令的用法。

 

scp [参数] [原路径] [目标路径]

 

[root@localhosttomcat7]# scp -r root@192.168.25.2:/web /

 

[root@localhosttomcat7]# scp -r root@192.168.25.2:/usr/local/tomcat7/usr/local/

 

[root@localhost~]# scp -r root@192.168.25.2:/usr/local/java/usr/local/

 

[root@localhost~]# scp -r root@192.168.25.2:/etc/profile.d/java.sh/etc/profile.d/

 

[root@localhost~]# ln -s /usr/local/tomcat7/bin/* /usr/local/bin/

 

[root@localhost~]# . /etc/profile.d/java.sh

 

[root@localhost~]# vim /web/webapp1/index.jsp

<%@ page language="java"import="java.util.*" pageEncoding="UTF-8"%>

<html>

       <head>

                <title>JSP test2page</title>

       </head>

       <body>

                <% out.println("Welcomto test site,http://www.test2.com");%>

       </body>

</html>

 

# /web/webapp1/index.jsp修改为如上。

 

[root@localhost~]# tomcatstart.sh

 

[root@localhost~]# netstat -anpt | grep 8080

tcp       0      0 :::8080                     :::*                        LISTEN      2171/java          

 

# 通过查看端口状态,我们可以看出Tomcat2已经启动,下面通过浏览器测试一下。

技术分享

# 我们已经成功搭建Tomcat2服务器

 

安装Nginx服务

[root@localhost/]# mkdir /yum

[root@localhost/]# yum clean all

[root@localhost/]# yum makecache

[root@localhost~]# yum -y install pcre-devel zlib-devel openssl-devel

[root@localhost~]# yum -y install gcc gcc-c++ make

[root@localhost~]# groupadd www

[root@localhost~]# useradd -g www www -s /bin/false


[root@localhost ~]# tar xf nginx-1.6.0.tar.gz 

[root@localhost ~]# cd nginx-1.6.0

[root@localhost nginx-1.6.0]#./configure --prefix=/usr/local/nginx --user=www --group=www--with-file-aio --with-http_stub_status_module --with-http_gzip_static_module--with-http_flv_module --with-http_ssl_module && make && makeinstall

//--user=,--group=     指定运行的用户和组

//--with-file-ail          启用文件修改支持

//--with-http_stub_status_module           启用状态统计

//--with-http_gzip_static_modele            启用gzip静态压缩

//--with-http_flv_module            启用flv模块,提供寻求内存使用基于时间的偏移量文件

//--with-http_ssl_module                      启用SSL模块

 

[root@localhost~]# vim /usr/local/nginx/conf/nginx.conf

user www www;

worker_processes  1;

 

#error_log logs/error.log;

error_log logs/error.log  notice;

#error_log logs/error.log  info;

 

pid       logs/nginx.pid;

 

 

events {

   use   epoll;

   worker_connections  1024;

}

 

 

http {

   include       mime.types;

   default_type application/octet-stream;

 

   log_format  main  ‘$remote_addr - $remote_user [$time_local]"$request" ‘

                      ‘$status $body_bytes_sent"$http_referer" ‘

                    ‘"$http_user_agent" "$http_x_forwarded_for"‘;

 

   access_log  logs/access.log  main;

 

   sendfile        on;

   #tcp_nopush     on;

 

   #keepalive_timeout  0;

   keepalive_timeout  65;

 

   #gzip  on;

 

   server {

       listen       80;

       server_name  localhost;

 

       charset utf-8;

 

       #access_log logs/host.access.log  main;

 

       location / {

           root   html;

           index  index.html index.htm;

           proxy_pass      http://a;

       }

 

       #error_page  404              /404.html;

 

       # redirect server error pages to the static page /50x.html

       #

       error_page   500 502 503 504  /50x.html;

       location = /50x.html {

           root   html;

       }

 

       # proxy the PHP scripts to Apache listening on 127.0.0.1:80

       #

       #location ~ \.php$ {

       #    proxy_pass   http://127.0.0.1;

       #}

 

       # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

       #

       #location ~ \.php$ {

       #    root           html;

       #    fastcgi_pass   127.0.0.1:9000;

       #    fastcgi_index  index.php;

       #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

       #    include        fastcgi_params;

       #}

 

       # deny access to .htaccess files, if Apache‘s document root

       # concurs with nginx‘s one

       #

       #location ~ /\.ht {

       #    deny  all;

       #}

    }

 

 

    #another virtual host using mix of IP-, name-, and port-based configuration

    #

   #server {

   #    listen       8000;

   #    listen       somename:8080;

   #    server_name  somename alias  another.alias;

 

   #    location / {

   #        root   html;

   #        index  index.html index.htm;

   #    }

   #}

 

 

    #HTTPS server

    #

   #server {

   #    listen       443 ssl;

   #    server_name  localhost;

 

   #    ssl_certificate      cert.pem;

   #    ssl_certificate_key  cert.key;

 

   #    ssl_session_cache    shared:SSL:1m;

   #    ssl_session_timeout  5m;

 

   #    ssl_ciphers  HIGH:!aNULL:!MD5;

   #   ssl_prefer_server_ciphers  on;

 

   #    location / {

   #        root   html;

   #        index  index.html index.htm;

   #    }

   #}

  upstream a {

         server 192.168.25.2:8080 weight=1;

        server 192.168.25.3:8080 weight=1;

}

}

# 编辑Nginx配置文件,并在http {}中加入如下代码,设定负载均衡的服务器列表,weight参数表示权值,权值越高被分到的概率越大。为了使测试效果比较明显,我们把权重设置为一样。

upstream a {

         server 192.168.25.2:8080 weight=1;

    server 192.168.25.3:8080 weight=1;

}

我们还要在http {…}-server{…}-location / {…}中加入一行“proxy_pass      http://a;

# 注意a要与刚刚添加权重时的名字设置成一样的,名字没有限制可以随便写!

 

[root@localhost~]# /usr/local/nginx/sbin/nginx

[root@localhost~]# netstat -anpt | grep nginx

tcp       0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      4653/nginx  

# 启动Nginx服务

 

通过浏览器测试效果

 

技术分享


   技术分享


我们直接使用浏览器访问http://192.168.25.4Nginx服务器)即可,从上面两张图我们可以看出第一次访问的是Tomcat1主机,第二次访问的是Tomcat2主机

         我们可以通过不断地刷新浏览器测试,可以看到由于权重相同,页面会反复的在以下两个页面中进行切换。第一次访问的是test1的页面,第二次访问出现的是test2的页面,这就说明负载均衡服务器群集搭建成功,已经可以在Tomcatserver站点之间来回切换,大家可根据需要扩展Tomcat的数量。

                                     图中蓝色字体为超链接

                                                以上部分信息来自网络

本文出自 “linux” 博客,请务必保留此出处http://bella41981.blog.51cto.com/10603572/1843932

Nginx+Tomcat群集服务