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,如需轉載請自行聯系原作者