天天看點

案例Nginx+tomcat負載均衡群集

Tomcat屬于輕量級應用伺服器,在中小型系統和并發通路使用者不是很多的場合下被普遍使用,是開發和調試JSP程式的首選。一般來說,tomcat雖然和Apache或者nginx這些web伺服器一樣,具有處理HTML頁面的功能,然而由于其處理靜态HTML的能力遠不及Apache或者nginx,是以tomcat通常是作為一個servlet和JSP容器,單獨運作在後端。

要求:

通過搭建一台Nginx伺服器用用戶端通路兩台tomcat服務,來證明Nginx服務的負載均衡

環境:

準備三台Linux伺服器

Nginx伺服器eth0:192.168.100.30

Tomcat伺服器一eth0:192.168.100.1,

web頁面内容Welcome to test site,http://www.test1.com

Tomcat伺服器二eth0:192.168.100.20,

web頁面内容Welcome to test site,http://www.test2.com

主要軟體包:

apache-tomcat-7.0.54.tar.gz  

jdk-7u65-linux-x64.gz 

nginx-1.6.0.tar.gz

(兩台tomcat伺服器配置相同顯示網頁不同,用以區分Nginx服務的負載均衡。)

第一步:在安裝tomcat之前必須先安裝JDK,目的用于适應JAVA。(編寫好的Java源程式經過編譯可形成Java位元組碼隻要安裝了jdk,就可以利用JVM解釋這些位元組碼檔案,進而保證了Java的跨平台性。在相容性方面,jdk作為解釋位元組碼檔案并據此調用作業系統api實作對應功能的Java虛拟機,與作業系統類型和平台位數密切相關,是以存在不同類型的版本,而tomcat也具有上述特征。)

[root@root /]# mkdir /tom

[root@root /]# mount.cifs //192.168.100.1/tomcat /tom

Password: 

[root@root /]# ls /tom

apache-tomcat-7.0.54.tar.gz  jdk-7u65-linux-x64.gz  nginx-1.6.0.tar.gz

[root@root /]# tar zxvf /tom/jdk-7u65-linux-x64.gz -C /opt

[root@root /]# cd /opt

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

[root@root opt]# cd /etc/profile.d/

[root@root profile.d]# vi java.sh   編寫一個腳本

export JAVA_HOME=/usr/local/java  設定Java根目錄

export PATH=$PATH:$JAVA_HOME/bin在PATH環境變量中添加Java根目錄下的bin/子目錄

[root@root profile.d]# source java.sh  java.sh腳本導入到環境變量,使其生效

[root@root profile.d]# java -version  檢視版本

java version "1.6.0_22"

OpenJDK Runtime Environment (IcedTea6 1.10.4) (rhel-1.41.1.10.4.el6-x86_64)

OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)

[root@root profile.d]# tar zxvf /tom/apache-tomcat-7.0.54.tar.gz -C /opt

[root@root profile.d]# mv /opt/apache-tomcat-7.0.54/ /usr/local/tomcat7

[root@root profile.d]# /usr/local/tomcat7/bin/startup.sh  啟動tomcat

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.

[root@root profile.d]# netstat -antp | grep 8080  tomcat預設運作8080端口,通過netstat檢視

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

第二步:測試tomcat的web安裝情況

第三步:加入測試頁面

[root@root profile.d]# mkdir -pv /web/test  建立web目錄

mkdir: 已建立目錄 "/web"

mkdir: 已建立目錄 "/web/test"

[root@root profile.d]# vim /web/test/index.jsp

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

<html>

 <head>

  <title>JSP test1 page</title>

 </head>

 <body>

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

 </body>

</html>

[root@root profile.d]# vi /usr/local/tomcat7/conf/server.xml 

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

            unpackWARs="true" autoDeploy="true">

添加下面這段

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

</Context>

注解:docBase:web應用的文檔基準目錄

        reloadable 設定監視“類”是否變化

        path=""設定預設“類”

第四步:通路tomcat伺服器的192.168.100.10的8080端口檢視頁面

Nginx伺服器配置

首先:Nginx的配置及運作需要pcre、zlib等軟體包的支援,以便提供相應的庫和頭檔案,確定Nginx的按章順利完成。

[root@root ~]# mkdir /abc

[root@root ~]# mount.cifs //192.168.100.1/tomcat /abc  将所需安裝包共享到abc目錄下

[root@root ~]# yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++

[root@root ~]# useradd -s /bin/false www  建立www使用者

[root@root ~]# tar zxvf /abc/nginx-1.6.0.tar.gz -C /opt

[root@root ~]# cd /opt/nginx-1.6.0/  編譯安裝

[root@root 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 

[root@root nginx-1.6.0]# make && make install

[root@root nginx-1.6.0]# vim /usr/local/nginx/conf/nginx.conf 修改Nginx的配置檔案以實作負載均衡

#keepalive_timeout  0;

    keepalive_timeout  65;

    #gzip  on;

    upstream tomcat_server {                             //添加//

              server 192.168.100.10:8080 weight=1;

              server 192.168.100.20:8080 weight=1;    

            }

    server {

        listen       80;

.....省略

location / {

            root   html;

            index  index.html index.htm;

            proxy_pass http://tomcat_server;         //添加//

        }

[root@root nginx-1.6.0]# /usr/local/nginx/sbin/nginx -t檢查配置(結尾處的successful表示成功)

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@root nginx-1.6.0]# nginx  啟用

[root@root nginx-1.6.0]# netstat -antp | grep nginx

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

最後通過通路nginx伺服器位址192.168.100.30來檢視負載均衡情況

<a href="http://s3.51cto.com/wyfs02/M02/73/05/wKiom1XyOgjzPKVsAAClvjQhoh4830.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M01/73/02/wKioL1XyPDaywHTLAACnvNs3ZP4562.jpg" target="_blank"></a>

本文轉自白羊IT51CTO部落格,原文連結:http://blog.51cto.com/000011211684/1693728,如需轉載請自行聯系原作者