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
案例:某公司發佈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)打開瀏覽器,查看配置啓動成功vim
(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站點已經配置成功瀏覽器
2. 配置第二臺Tomcat服務器tomcat
第二臺的配置方法與第一臺同樣,我就不在重複了
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. 測試負載均衡效果
打開瀏覽器進行測試,能夠看到權重相同,頁面反覆在如下兩個頁面來回切換