Web項目HA部署方法

HA(High Available):高可用性羣集,是保證業務連續性的有效解決方案,一般有兩個或兩個以上的節點,且分爲活動節點(master)及備用節點(slave)。當master出現問題,導致正在運行的業務(任務)不能正常運行時,slave此時就會偵測到,並立即接續活動節點來執行業務。從而實現業務的不中斷或短暫中斷,在此過程中,用戶使用不會受到任何影響。

測試機器3臺:

1.nginx:部署nginx主要作用是進行代理轉發操作

2.master:部署master的apache和tomcat服務

3.slave:部署slave的apache和tomcat服務

安裝命令:

apt-get install nginx //安裝nginx

apt-get install apache2 libapache2-mod-jk tomcat6//master和slave服務器安裝apache和tomcat

服務器配置:

nginx服務器配置,/etc/nginx/sites-enabled/VTWeb//sites-enabled下配置文件名自定義

upstream VTWeb {

server 192.168.1.72 max_fails=3; //將72設置爲master
server 192.168.1.10 backup; //將10設置爲slave

} server {

// server port and name //

listen 192.168.1.11:80 ; //此處端口填寫apache所使用端口,默認80
server_name lacalhost; //填寫ip地址或域名
access_log /var/log/nginx/tracker3.videodna.com.access.logrequest_time;

location / {

proxy_pass  http://tracker3.videodna.com

proxy_next_upstream error timeout invalid_headerhttp_503;

proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header X-Forwarded-For$remote_addr; 
proxy_set_header X-Forwarded-Host$server_name; 
proxy_set_header Host $host;

proxy_connect_timeout 60;
proxy_send_timeout 60; proxy_read_timeout 900;

} }

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

master和slave中apache2配置,/etc/apache2/sites-enabled/VTWeb,以下兩個文件在master和slave都需要進行配置

#loadModule jk_module /usr/lib/apache2/modules/mod_jk.so

JkWorkersFile "/etc/apache2/workers.properties"//填寫轉發文件絕對路徑,重要

JkLogFile "/var/log/apache2/mod_jk.log"

Alias /cache /var/www/cache

Alias /vtontc /var/www/vtontc

Alias /vtontc1.2 /var/www/vtontc1.2

Alias /data /var/www/data

Alias /resource /var/www/resource

Alias /msn /var/www/msn

ServerName 192.168.1.10 //當前服務器地址

Options FollowSymLinks AllowOverride None

DocumentRoot "/var/lib/tomcat6/webapps/VTWeb/" ServerName192.168.1.10

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

AllowOverride None Options +ExecCGI -MultiViews? +SymLinksIfOwnerMatch? Orderallow,deny Allow from all

#Deny direct access to WEB-INF and META-INF deny from all

AllowOverride None deny from all

#Use Directory too. On Windows, Location doesn't work unlesscase matches AllowOverride None deny from all

AllowOverride None deny from all

jkMount / ajp13

JkMount /*.do ajp13

JkMount /*.jsp ajp13

JkMount /dwr/* ajp13

jkMount /exportWhiteListReport ajp13

jkMount /dataFeedForMatch ajp13

jkMount /josso_security_check ajp13

jkMount /josso_user_login/ ajp13

jkMount /josso_logout/ ajp13

CustomLog /var/log/apache2/tracker3.log vhost_combined//輸出log配置

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

apache2配置,/etc/apache2/workers.properties,該文件不存在時需手動創建

worker.list=ajp13

# Define a worker using ajp13 worker.app1.port=8009//該端口爲nginx轉發時所用端口,如被佔用將影響服務

worker.app1.host=localhost

worker.app1.type=ajp13

# Define the LB worker

worker.ajp13.type=lb

worker.ajp13.sticky_session=True

#worker.ajp13.sticky_session_force=True

worker.ajp13.balance_workers=app1

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

注意事項: 1.tomcat配置增加了一行

vdna@qa-10:/etc/apache2/sites-enabled $ less/var/lib/tomcat6/conf/server.xml |grep VTWeb

2.系統中部分端口默認是不開啓的,需要手動開啓

測試方法:

開啓nginx,/etc/init.d/nginx start

開啓apache,/etc/init.d/apache2 start

開啓tomcat,/etc/init.d/tomcat6 start

case1:3個服務器中5個服務均開啓,訪問nginx地址:192.168.1.11成功打開VTWeb首頁

case2:將master服務器中的apache服務停止,訪問nginx地址:192.168.1.11成功打開VTWeb首頁,並且在slave的log中輸出請求日誌格式如下:

192.168.1.10:80 192.168.1.11 - - [09/Oct/2014:18:10:12+0800] "GET/VTWeb/login/images/bot/top_contact_2.gif HTTP/1.0" 404 642" http://192.168.1.11/VTWeb/""Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5)AppleWebKit/600.1.17 (KHTML, like Gecko) Version/7.1Safari/537.85.10"

case3:將slave服務器中的apache服務停止,訪問nginx地址:192.168.1.11成功打開VTWeb首頁

case4:將master服務器中的tomcat停止

case5:將master服務器中的apache和tomcat全部停止

master在不同情況下測試結果:

apache up, tomcat up, 訪問正常

apache up, tomcat down, 檢測到503錯誤,切換到備份服務器,訪問正常

apache down, tomcat up, 檢測到502錯誤,切換到備份服務器,訪問正常

apache down, tomcat down, 切換到備份服務器,訪問正常


原文地址:http://blog.sina.com.cn/s/blog_4d3ff0eb0102vc0o.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章