配置Nginx+Tomcat负载均衡集群

    Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其余一些公司及我的共同开发而成。Tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是不少的场合下被广泛使用,是开发和调试JSP 程序的首选。本篇博客将配置Nginx+Tomcat负载均衡集群html



Tomcat的应用场景java

    Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是不少的场合下被广泛使用,是开发和调试JSP 程序的首选。对于一个初学者来讲,能够这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,因此当你运行tomcat 时,它实际上做为一个与Apache 独立的进程单独运行的,一般是做为一个Servlet和JSP容器,单独运行在后端,以下图所示:linux

杨书凡17.png


案例:某公司发布V3版移联建站管理系统,该项目为Java语言开发的Web站点,须要一套可靠的解决方案来完善Web站点架构。咱们以Nginx做为负载均衡器,Tomcat做为应用服务器的设置方法,配置负载集群,来提高整个站点的负载并发能力nginx


1. 配置第一台Tomcat服务器web

(1)安装JDK,Tomcatapache

[root@localhost ~]# service iptables stop               //关闭防火墙
[root@localhost ~]# tar zxf jdk-7u65-linux-x64.gz       //安装JDK,配置Java环境
[root@localhost ~]# mv jdk1.7.0_65/ /usr/local/java     //移动jdk文件夹到/usr/local下,重命名为java
[root@localhost ~]# vim /etc/profile.d/java.sh          //创建脚本,使/usr/local/java/bin添加到PATH环境变量中
export java_home=/usr/local/java
export PATH=$PATH:$java_home/bin
[root@localhost ~]# sh /etc/profile.d/java.sh           //执行脚本,使其当即生效         
[root@localhost ~]# java -version                       //查看Java版本号,与以前安装的一致
java version "1.7.0_45"
OpenJDK Runtime Environment (rhel-2.4.3.3.el6-x86_64 u45-b15)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)

[root@localhost ~]# tar zxf apache-tomcat-7.0.54.tar.gz      //安装Tomcat
[root@localhost ~]# mv apache-tomcat-7.0.54 /usr/local/tomcat      //将文件移动到/usr/local下,重命名为tomcat
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh               //启动tomcat服务
[root@localhost ~]# netstat -anpt | grep 8080                      //Tomcat默认运行在8080端口
tcp        0      0 :::8080                     :::*                        LISTEN      5344/java

(2)打开浏览器,查看配置启动成功
杨书凡18.pngvim


(3)创建java的Web站点,存放网站文件,并制做测试文件后端

[root@localhost ~]# mkdir -p /web/webapp              //建立站点目录
[root@localhost ~]# vim /web/webapp/index.jsp         //编写测试文件
<html>
  <head>
    <title> ysf</title>
  <body>
    <% out.println("this is 192.168.1.2");%>
  </body>
</html>
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml    //修改主配置文件
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
            <Context docBase="/web/webapp" path="" reloadable="false">   //添加如下两行
            </Context>
                        
[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh 
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh      //重启tomcat


(4)打开浏览器,验证该tomcat站点已经配置成功浏览器

杨书凡19.png





2. 配置第二台Tomcat服务器tomcat

    第二台的配置方法与第一台同样,我就不在重复了

杨书凡20.png


3. Nginx服务器配置

[root@localhost ~]# service iptables stop           //关闭防火墙
[root@localhost ~]# yum -y install pcre-devel zlib-devel openssl-devel      //安装相关软件包
[root@localhost ~]# useradd -M -s /sbin/nologin nginx          //建立运行nginx服务的程序用户
[root@localhost ~]# tar zxf nginx-1.6.0.tar.gz -C /usr/src/         
[root@localhost ~]# cd /usr/src/nginx-1.6.0/
[root@localhost nginx-1.6.0]# ./configure --prefix=/usr/local/nginx     //指定安装
--user=nginx --group=nginx                 //指定运行的用户和组
--with-file-aio                            //启用文件修改支持
--with-http_stub_status_module             //启用状态统计
--with-http_gzip_static_module             //启用gzip静态压缩
--with-http_flv_module                     //启用flv模块,提供寻求内存使用基于时间的偏移量文件
--with-http_ssl_module                     //启用SSL模块
[root@localhost nginx-1.6.0]# make && make install

[root@localhost nginx-1.6.0]# vim /usr/local/nginx/conf/nginx.conf      //修改配置文件
upstream tomcat_server {                    //在http{…}内添加如下代码,设定负载均衡的服务器列表
        server 192.168.1.2:8080 weight=1;        //weight参数表明权值,权值越高被分配到的越大
        server 192.168.1.3:8080 weight=1;
     }
……省略部份内容
        location / {                            //在server{…}的location/{…}加入一行
            root   html;
            index  index.html index.htm;
            proxy_pass     //加入此行,代理前面设定的列表中服务器
        }

[root@localhost nginx-1.6.0]# /usr/local/nginx/sbin/nginx -t        //测试配置文件是否正确
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost nginx-1.6.0]# /usr/local/nginx/sbin/nginx           //开启nginx服务
[root@localhost nginx-1.6.0]# netstat -anpt | grep nginx            //查看nginx服务的端口号及PID进程号
tcp        0      0 0.0.0.0:80          0.0.0.0:*           LISTEN      4619/nginx


4. 测试负载均衡效果

    打开浏览器进行测试,能够看到权重相同,页面反复在如下两个页面来回切换

杨书凡21.png

相关文章
相关标签/搜索