- 相關(guān)推薦
WEB服務(wù)器多框架的解決方案
【摘要】在INTRANET上設(shè)計(jì)基于WEB的MIS時(shí),大批量數(shù)據(jù)錄入變成了操作上的瓶頸,并給WEB SERVER與DATABASE造極大的負(fù)擔(dān)。
為解決這個(gè)問題,我們設(shè)計(jì)了多框架結(jié)構(gòu),將應(yīng)用的功能進(jìn)行細(xì)分,然后交給各框架分別完成,這種分工協(xié)作方式可以使操作界面上的數(shù)據(jù)實(shí)現(xiàn)受控的部分刷新,有效地減小了網(wǎng)絡(luò)的數(shù)據(jù)傳輸量,縮短了各部分的處理時(shí)間,同時(shí)了也大大減輕了WEB SERVER與DATABASE的系統(tǒng)負(fù)擔(dān)。
多框架解決方案采用ASP(ActiveX Server Pages)及ADO(ActiveX Data Objects)完成與數(shù)據(jù)庫的交互工作。采用DOM技術(shù)解決和框架之間的協(xié)作問題。
關(guān)鍵詞:多框架
*注:本文中討論的方案中WEB服務(wù)器為IIS4.0、客戶端瀏覽器為IE4.0以上版本。
一、問題的提出
最初,我們采用ASP及ADO技術(shù)在INTRANET上設(shè)計(jì)基于WEB的MIS(下文簡稱MIS)時(shí),沿用了以往設(shè)計(jì)WEB站點(diǎn)時(shí)的設(shè)計(jì)習(xí)慣。但隨著設(shè)計(jì)的深入,我們發(fā)現(xiàn),現(xiàn)有的系統(tǒng)結(jié)構(gòu)無法承擔(dān)大批量的數(shù)據(jù)錄入工作,因此,必須重新構(gòu)造系統(tǒng)的總體設(shè)計(jì)結(jié)構(gòu)。
MIS與普通的WEB站點(diǎn)之間最大的區(qū)別在于處理信息的方式。普通WEB站點(diǎn)的主要功能是發(fā)布信息,采集信息只是它極小的一部分功能,而且這些信息采集功能也都是比較簡單的。但對于MIS系統(tǒng)來說,信息的采集及維護(hù)工作占有比較高的比例,在這些信息采集功能中還存在一些較為復(fù)雜及大批量的數(shù)據(jù)錄入功能,這些功能成為了系統(tǒng)中的設(shè)計(jì)難點(diǎn)。
二、問題的分析
當(dāng)一個(gè)系統(tǒng)涉及到復(fù)雜及大批量的數(shù)據(jù)錄入功能時(shí),同時(shí)也就涉及到了響應(yīng)速度及界面的問題。在以往的C/S方式中,客戶端的錄入速度由錄入員來控制,一般情況下,當(dāng)錄入員熟悉了操作方式之后,錄入速度是不受系統(tǒng)限制的。但在WEB方式下,頁面采用完全刷新方式,每次的交互操作至少要造成一個(gè)頁面的刷新。這種刷新的工作不僅更新了數(shù)據(jù),也將界面上的一些固定內(nèi)容重新加載了一遍。對于普通用戶來說,這種短時(shí)間的刷新并不會(huì)造成影響;但對于長時(shí)間進(jìn)行操作的錄入員來說,錄入一條數(shù)據(jù)就要等待一段時(shí)間(這一段時(shí)間可能是2-3秒,也可能是十幾秒甚至幾分鐘),是絕對不能接受的。即使,網(wǎng)絡(luò)有足夠的帶寬,頁面的重載也會(huì)造成一種閃動(dòng)的效果,這種一閃一閃的刷新造成錄入員必須重新識別頁面上的各種元素,不僅也會(huì)拖慢了他們的錄入速度,還造成眼睛的快速疲勞。
三、解決方案
如果能夠“不”刷新頁面而“快速更新”頁面中的數(shù)據(jù),問題應(yīng)該能夠解決了。而且頁面由于沒有刷新,一些必須由服務(wù)器保存的狀態(tài)信息也能夠在客戶端保存下來了,從而減輕服務(wù)器的負(fù)擔(dān)。那么如何達(dá)到這個(gè)目標(biāo)呢?下面將詳細(xì)討論。
1.設(shè)計(jì)思路
首先,我們確立采用多框架建立頁面?蚣(Frames)其實(shí)不是什么新東西,許多站點(diǎn)上都用它來完成顯示固定標(biāo)題及菜單的功能。采用框架能夠避免一些頁面的重復(fù)訪問。但是如果結(jié)合使用DOM(Document objects model),框架可以完成許多細(xì)致的工作。
按照DOM的定義,框架可以被當(dāng)作一個(gè)對象。假設(shè)我們建立了一個(gè)框架,并給它取名為A,則對于建立框架的頁面來說,A是Frames集合中的一個(gè)成員,而對于A中的頁面來說,A相當(dāng)于window對象。因些,雖然框架之間不存在從屬關(guān)系,但可以通過它們的父頁面(對象)建立各框架之間的關(guān)系。
如右圖所示:框架之間能夠進(jìn)行相互控制與數(shù)據(jù)傳送。
1).在框架A中用的是最常用的框架控制方式,利用<A TARGET=“B” HREF=”URL”> 控制B框架中的頁面重載。
2).在框架B中,通過按鈕的點(diǎn)擊事件對框架C進(jìn)行控制,這里的控制是通過DOM來實(shí)現(xiàn)的。(假設(shè)B中按鈕Name值為“B1”)
控制C中的URL,在按鈕的ONCLICK事件中加入以下代碼:(VBScript)
sub b1_onclick
set Bframe = parent.B
Bframe.location.href = “URL”
End sub
控制C中的文本框內(nèi)容,在按鈕的ONCLICK事件中加入以下代碼:(VBScript)
sub b1_onclick
set Bframe = parent.B
Brame.document.all.txt1.value = “劉念”
‘txt1是C框架中文本框的Value值
end sub
2.新的框架結(jié)構(gòu)
如上圖,我們定義了一個(gè)新的框架結(jié)構(gòu)。在新的框架結(jié)構(gòu)中,除了用來放置一、二級菜單的MENU1、MENU2和用來放置三級菜單及具體應(yīng)用功能的Aapp之外,還增加了三個(gè)專門用來處理數(shù)據(jù)的框架(在上圖中用虛線表示)。這三個(gè)框架不需要界面,在應(yīng)用執(zhí)行的時(shí)候是看不見的。
淘寶Web服務(wù)器,Tengine-1.2.5 版本發(fā)布
我們很高興的告訴大家,Tengine-1.2.5 版本正式發(fā)布了。您可以在這里下載:http://tengine.taobao.org/download/tengine-1.2.4.tar.gz或者可以在github上檢出代碼:https://github.com/taobao/tengine
本次發(fā)布的亮點(diǎn)是新增加的upstream_check模塊,可以用來對后端服務(wù)器進(jìn)行主動(dòng)健康檢查,以自動(dòng)的下線失效的服務(wù)器。當(dāng)您使用Tengine作為負(fù)載均衡(反向代理)時(shí),這個(gè)功能非常有用。
其他的更新包括:
* Feature:允許syslog輸出日志時(shí)指定程序的標(biāo)識(program identifier);* Change:合并nginx-1.0.14至nginx-1.0.15之間的修改;* Change:將accept_mutex_delay的默認(rèn)值從500毫秒更改為100毫秒以提高性能;* Bugfix:修復(fù)syslog的一個(gè)在后端服務(wù)器連接不上導(dǎo)致端錯(cuò)誤的bug;* Bugfix:修復(fù)access_log可能和buffer參數(shù)沖突的bug;
Tengine是由淘寶網(wǎng)發(fā)起的Web服務(wù)器項(xiàng)目。它在Nginx的基礎(chǔ)上,針對大訪問量網(wǎng)站的需求,添加了很多高級功能和特性。Tengine的 性能和穩(wěn)定性已經(jīng)在大型的網(wǎng)站如淘寶網(wǎng),天貓商城等得到了很好的檢驗(yàn)。它的最終目標(biāo)是打造一個(gè)高效、穩(wěn)定、安全、易用的Web平臺(tái)。
從2011年12月開始,Tengine成為一個(gè)開源項(xiàng)目。
以下沿引項(xiàng)目主頁上的特性介紹:
繼承Nginx-1.0.14的所有特性,100%兼容Nginx的配置;輸入過濾器機(jī)制支持。通過使用這種機(jī)制Web應(yīng)用防火墻的編寫更為方便;組合多個(gè)CSS、JavaScript文件的訪問請求變成一個(gè)請求;支持管道(pipe)和syslog(本地和遠(yuǎn)端)形式的日志以及日志抽樣;自動(dòng)根據(jù)CPU數(shù)目設(shè)置進(jìn)程個(gè)數(shù)和綁定CPU親緣性;監(jiān)控系統(tǒng)的負(fù)載和資源占用從而對系統(tǒng)進(jìn)行保護(hù);顯示對運(yùn)維人員更友好的出錯(cuò)信息,便于定位出錯(cuò)機(jī)器;更強(qiáng)大的防攻擊(訪問速度限制)模塊;backtrace模塊,程序崩潰的時(shí)候可以顯示出錯(cuò)的調(diào)用棧;更方便的命令行參數(shù),如列出編譯的模塊列表、支持的指令等;可以根據(jù)訪問文件類型設(shè)置過期時(shí)間;
在Tengine的網(wǎng)站上可以瀏覽更多信息:http://tengine.taobao.org
Hiawatha 8.4發(fā)布,安全的Web服務(wù)器
Hiawatha 是一個(gè)Linux/UNIX下安全的Web服務(wù)器,其設(shè)計(jì)的最主要的目的就是安全,當(dāng)然它也是快速的而且易于配置。
Hiawatha 8.4 的改進(jìn)內(nèi)容:
MaxServerLoad option added.Bugfix: invalid reverse proxy request when URL parameters are present.PolarSSL updated to version 1.1.4.Small bugfixes and improvements.
RHEL/CentOS上為Web服務(wù)器架設(shè) “XR”(Crossroads) 負(fù)載均衡器
Crossroads 是一個(gè)獨(dú)立的服務(wù),它是一個(gè)用于Linux和TCP服務(wù)的開源負(fù)載均衡和故障轉(zhuǎn)移實(shí)用程序。它可用于HTTP,HTTPS,SSH,SMTP 和 DNS 等,它也是一個(gè)多線程的工具,在提供負(fù)載均衡服務(wù)時(shí),它可以只使用一塊內(nèi)存空間以此來提高性能。
首先來看看 XR 是如何工作的。我們可以將 XR 放到網(wǎng)絡(luò)客戶端和服務(wù)器之間,它可以將客戶端的請求分配到服務(wù)器上以平衡負(fù)載。
如果一臺(tái)服務(wù)器宕機(jī),XR 會(huì)轉(zhuǎn)發(fā)客戶端請求到另一個(gè)服務(wù)器,所以客戶感覺不到停頓。看看下面的圖來了解什么樣的情況下,我們要使用 XR 處理。
延伸閱讀:
安裝 XR Crossroads 負(fù)載均衡器
這里有兩個(gè) Web 服務(wù)器,一個(gè)網(wǎng)關(guān)服務(wù)器,我們將在網(wǎng)關(guān)服務(wù)器上安裝和設(shè)置 XR 以接收客戶端請求,并分發(fā)到服務(wù)器。
XR Crossroads 網(wǎng)關(guān)服務(wù)器:172.16.1.204
Web 服務(wù)器01:172.16.1.222
Web 服務(wù)器02:192.168.1.161
在上述情況下,我們網(wǎng)關(guān)服務(wù)器(即 XR Crossroads)的IP地址是172.16.1.222,webserver01 為172.16.1.222,它監(jiān)聽8888端口,webserver02 是192.168.1.161,它監(jiān)聽端口5555。
現(xiàn)在,我們需要的是均衡所有的請求,通過 XR 網(wǎng)關(guān)從網(wǎng)上接收請求然后分發(fā)它到兩個(gè)web服務(wù)器已達(dá)到負(fù)載均衡。
第1步:在網(wǎng)關(guān)服務(wù)器上安裝 XR Crossroads 負(fù)載均衡器
1. 不幸的是,沒有為 crossroads 提供可用的 RPM 包,我們只能從源碼安裝。
要編譯 XR,你必須在系統(tǒng)上安裝 C++ 編譯器和 GNU make 組件,才能避免安裝錯(cuò)誤。
#yuminstallgccgcc-c++make
接下來,去他們的(https://crossroads.e-tunity.com)下載此壓縮包(即 crossroads-stable.tar.gz)。
或者,您可以使用 wget 去下載包然后解壓在任何位置(如:/usr/src/),進(jìn)入解壓目錄,并使用 “make install” 命令安裝。
#wgethttps://crossroads.e-tunity.com/downloads/crossroads-stable.tar.gz#tar-xvfcrossroads-stable.tar.gz#cdcrossroads-2.74/#makeinstall
安裝完成后,二進(jìn)制文件安裝在 /usr/sbin 目錄下,XR 的配置文件在 /etc 下名為 “xrctl.xml” 。
2. 最后一個(gè)條件,你需要兩個(gè)web服務(wù)器。為了方便使用,我在一臺(tái)服務(wù)器中創(chuàng)建兩個(gè) Python SimpleHTTPServer 實(shí)例。
要了解如何設(shè)置一個(gè) python SimpleHTTPServer,請閱讀我們此處的文章 使用 SimpleHTTPServer 輕松創(chuàng)建兩個(gè) web 服務(wù)器.
正如我所說的,我們要使用兩個(gè)web服務(wù)器,webserver01 通過8888端口運(yùn)行在172.16.1.222上,webserver02 通過5555端口運(yùn)行在192.168.1.161上。
XR WebServer 01
XR WebServer 02
第2步: 配置 XR Crossroads 負(fù)載均衡器
3. 所需都已經(jīng)就緒。現(xiàn)在我們要做的就是配置xrctl.xml 文件并通過 XR 服務(wù)器接受來自互聯(lián)網(wǎng)的請求分發(fā)到 web 服務(wù)器上。
現(xiàn)在用 vi/vim 編輯器打開xrctl.xml文件。
#vim/etc/xrctl.xml
并作如下修改。
true/tmpTecmint172.16.1.204:8080tcp0:8010yes0000172.16.1.222:8888192.168.1.161:5555
配置 XR Crossroads 負(fù)載均衡器
在這里,你可以看到在 xrctl.xml 中配置了一個(gè)非;镜 XR 。我已經(jīng)定義了 XR 服務(wù)器在哪里,XR 的后端服務(wù)和端口及 XR 的 web 管理界面是什么。
4. 現(xiàn)在,你需要通過以下命令來啟動(dòng)該 XR 守護(hù)進(jìn)程。
#xrctlstart#xrctlstatus
啟動(dòng) XR Crossroads
5. 好的,F(xiàn)在是時(shí)候來檢查該配置是否可以工作正常了。打開兩個(gè)網(wǎng)頁瀏覽器,輸入 XR 服務(wù)器的 IP 地址和端口,并查看輸出。
驗(yàn)證 Web 服務(wù)器負(fù)載均衡
太棒了。它工作正常。是時(shí)候玩玩 XR 了。(LCTT 譯注:可以看到兩個(gè)請求分別分配到了不同服務(wù)器。)
6. 現(xiàn)在可以通過我們配置的網(wǎng)絡(luò)管理界面的端口來登錄到 XR Crossroads 儀表盤。在瀏覽器輸入你的 XR 服務(wù)器的 IP 地址和你配置在 xrctl.xml 中的管理端口。
http://172.16.1.204:8010
XR Crossroads 儀表盤
看起來像上面一樣。它容易理解,用戶界面友好,易于使用。它在右上角顯示每個(gè)服務(wù)器能容納多少個(gè)連接,以及關(guān)于接收該請求的附加細(xì)節(jié)。你也可以設(shè)置每個(gè)服務(wù)器承擔(dān)的負(fù)載量,最大連接數(shù)和平均負(fù)載等。
最大的好處是,即使沒有配置文件 xrctl.xml,你也可以做到這一點(diǎn)。你唯一要做的就是運(yùn)行以下命令,它就會(huì)把這一切搞定。
#xr--verbose--servertcp:172.16.1.204:8080--backend172.16.1.222:8888--backend192.168.1.161:5555
上面語法的詳細(xì)說明:
-verbose 將顯示命令執(zhí)行后的信息。-server 定義你在安裝包中的 XR 服務(wù)器。-backend 定義你需要平衡分配到 Web 服務(wù)器的流量。tcp 說明我們使用 TCP 服務(wù)。
欲了解更多詳情,有關(guān)文件及 CROSSROADS 的配置,請?jiān)L問他們的: https://crossroads.e-tunity.com/.
XR Corssroads 使用許多方法來提高服務(wù)器性能,避免宕機(jī),讓你的管理任務(wù)更輕松,更簡便。希望你喜歡此文章,并隨時(shí)在下面發(fā)表你的評論和建議,方便與我們保持聯(lián)系。via:https://linux.cn/article-5867-1.html
如何用Flood測試Web服務(wù)器響應(yīng)時(shí)間
服務(wù)器投入使用后,你最關(guān)心的事莫過于服務(wù)器的性能了。你可以用一些手動(dòng)的方法進(jìn)行測試,但手動(dòng)方法有很多局限性。先不論手工測試方法所投入的時(shí)間和精力問題,用手工方法測試的一大不足就是它不容易揭示出你的站點(diǎn)的真正問題所在,是服務(wù)器設(shè)置的問題還是因?yàn)橐恍﹦?dòng)態(tài)組件又或是網(wǎng)絡(luò)基礎(chǔ)設(shè)施造成的問題?幸運(yùn)的Apache HTTP工程包含了一個(gè)名為HTTPD-Test的子工程,正如這個(gè)名稱所揭示的,這是一個(gè)Apache的通用測試工具包,這個(gè)包里包含了大量的不同工 具,而本文將主要介紹其中一個(gè)名為洪水(Flood)的工具,它之所以如此命名,是因?yàn)樗孟蚍⻊?wù)器發(fā)出洪水般的大量請求測試服務(wù)器的響應(yīng)時(shí)間。Flood使用一個(gè)XML文件來進(jìn)行必要的測試設(shè)置,包括測試中使用的URL和POST數(shù)據(jù)和準(zhǔn)備測試的服務(wù)器組,然后Flood開始測量以下一系統(tǒng)操作的時(shí)間:打開一個(gè)到服務(wù)器的socket向socket寫入對服務(wù)器的請求讀出服務(wù)器的響應(yīng)關(guān)閉socket當(dāng)測試結(jié)束,管理員就可以了解到是否存在Apache服務(wù)器(或其它HTTP服務(wù)器)的設(shè)置問題,服務(wù)器的實(shí)際負(fù)荷,硬件的性能表現(xiàn)和是否存在著網(wǎng)絡(luò)基礎(chǔ)設(shè)置瓶頸。安裝Flood你可以在Apache網(wǎng)站下載httpd-test和apr/apr-util軟件包,后者是當(dāng)從Apache的CVS服務(wù)器上直接build時(shí)所需要的。你必需先進(jìn)行登錄(密碼是"anoncvs")$ cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login$ cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic co httpd-test/flood$ cd httpd-test/flood$ cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic co apr$ cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic co apr-util如果你取得了源碼,你可以用下面的命令安裝:$ buildconf$ configure$ make all現(xiàn)在,安裝完成了。設(shè)置FloodFlood通 過一個(gè)XML格式的設(shè)置文件來定義測試中使用的各種參數(shù),我們不妨通過一個(gè)形象的比喻也說明一下Flood的工作過程和需要設(shè)置的各個(gè)方面。首 先,F(xiàn)lood使用一個(gè)模型(profile)來定義一組給定的URL如何被訪問,具體的訪問由一個(gè)或多個(gè)農(nóng)夫(farmer)來進(jìn)行,而這些農(nóng)夫又屬于 一個(gè)或多個(gè)農(nóng)場(farm),我們來看一下下面這個(gè)示意圖:如圖所示,現(xiàn)在我們使用一個(gè)農(nóng)場,這個(gè)農(nóng)場有兩組農(nóng)夫,其中農(nóng)夫組Joe使用訪問模型A與一個(gè)包含五個(gè)地址的URL列表,農(nóng)夫組B使用訪問模型B與一個(gè)包含 三個(gè)URL的地址列表,這些家夫直接向WEB服務(wù)器請求列表中的地址。Flood使用線程來創(chuàng)建各個(gè)農(nóng)夫,然后比較各個(gè)農(nóng)夫收集到的數(shù)據(jù)并存入一個(gè)單獨(dú)的 文件以便之后做進(jìn)一步的處理。XML文件包括了這個(gè)測試需要定義的四個(gè)方面:URL列表,訪問模型,農(nóng)夫和農(nóng)場。URL列表也即一組即將被訪問的地址的列表,這些URL地址可以被簡單的引用進(jìn)一步定義特定的請求方法(GET,POST,HEAD)。訪問模型定義測試使用哪一個(gè)地址列表,它們?nèi)绾伪辉L問,使用哪一種Socket,收集的信息如何被報(bào)告。農(nóng)夫負(fù)責(zé)實(shí)際的請求過程,對農(nóng)夫唯一的可設(shè)置選項(xiàng)是使用哪一個(gè)訪問模型和對一個(gè)訪問模型的調(diào)用次數(shù)。每個(gè)農(nóng)夫獨(dú)立的執(zhí)行自己的訪問模型,但一個(gè)訪問模型可以執(zhí)行多次,因此最后的請求過程可能是這樣:地址一、地址二、地址一、地址二、……。對 家場的定義涉及到創(chuàng)建農(nóng)夫的數(shù)目和時(shí)間,通過增加一個(gè)家場創(chuàng)建農(nóng)夫的數(shù)目,可以增加并發(fā)請求的數(shù)目。并通一些附加的設(shè)置,你可以設(shè)置一些初始數(shù)目的農(nóng)夫, 然后每隔特定的時(shí)間增加一定的農(nóng)夫數(shù)量。例如,你可以開始創(chuàng)建兩個(gè)農(nóng)夫,然后每5秒鐘增加一個(gè)農(nóng)夫,直到農(nóng)夫數(shù)目達(dá)到20時(shí)停止增加。這可以在一個(gè)給定的 期間形成一個(gè)最大20的并發(fā)訪問升級過程,然后又逐步將并發(fā)請求數(shù)降到0。另外也可以模擬這種訪問情況,一定數(shù)目的訪問者長時(shí)期的訪問一系列頁面,并操持 最大并發(fā)請求數(shù)在5-6之間。注意:到寫這篇文章的時(shí)候?yàn)橹,目前的Flood僅支持一個(gè)農(nóng)場,而且它的名子必須是"Bingo",不過,通過為一個(gè)農(nóng)場定義多個(gè)農(nóng)夫,你可以取得同樣的基本效果。通過調(diào)節(jié)農(nóng)夫,農(nóng)場和URL列表的參數(shù),你可以控制總請求數(shù),并發(fā)請求數(shù),測試時(shí)間(基于URL列表,重復(fù)次數(shù)和農(nóng)夫的數(shù)量可以決定這一點(diǎn)),以及這些請求在整個(gè)測試期間的分布,這就允許你針對不同的條件訂制你的測試。在使用Flood進(jìn)行測試設(shè)置時(shí)你應(yīng)該記住的三個(gè)基本點(diǎn)是:地址列表定義了農(nóng)夫們將訪問的地址每個(gè)農(nóng)夫的重復(fù)數(shù)目定義了一個(gè)用戶訪問你的站點(diǎn)的次數(shù)。一個(gè)農(nóng)場的農(nóng)夫數(shù)目定義了并發(fā)訪問用戶的數(shù)目。在Flood發(fā)行包里的examples目錄下有一個(gè)樣例設(shè)置文件,round-robin.xml可能是一個(gè)最適合初學(xué)者學(xué)習(xí)的例子,不過本文并不準(zhǔn)備就編輯此XML文件的規(guī)則或處理產(chǎn)生的數(shù)據(jù)文件做進(jìn)一步的解說。這里,我們主要想講一下如何針對不同類型的WEB服務(wù)器來調(diào)整測試的參數(shù)。為了便于理解后面的內(nèi)容,這里我們先看一下使用examples目錄下的analyze-relative測試腳本得到的一個(gè)結(jié)果。在這個(gè)例子中,測試對象是一臺(tái)內(nèi)部服務(wù)器。Slowest pages on average (worst 5):Average times (sec)connect write read close hits URL0.0022 0.0034 0.0268 0.0280 100 http://test.mcslp.pri/java.html0.0020 0.0028 0.0183 0.0190 700 http://www.mcslp.pri/0.0019 0.0033 0.0109 0.0120 100 http://test.mcslp.pri/random.html0.0022 0.0031 0.0089 0.0107 100 http://test.mcslp.pri/testr.html0.0019 0.0029 0.0087 0.0096 100 http://test.mcslp.pri/Requests: 1200 Time: 0.14 Req/Sec: 9454.08在這里你可以看到測試中進(jìn)行連接(connect),請求(write/request),回應(yīng)(read /response),關(guān)閉連接(close)的平均時(shí)間。你也可以對服務(wù)器每稱處理的請求數(shù)目有個(gè)基本的印象。對于新聞?lì)愓军c(diǎn)的測試對于如New York Times、Slashdot之類的新聞?wù)军c(diǎn)以及一些BLOG之類,它們都有一個(gè)主要的首頁,首頁上有著眾多到欄目頁和內(nèi)容頁的連接,對某條信息感興趣的讀者可以點(diǎn)進(jìn)去仔細(xì)閱讀。通常情況下,這類站點(diǎn)的首頁訪問量相對固定而對于其它頁面,訪問量的變化就會(huì)更大一些。如果它推出了RSS/RDF訂閱服務(wù),那么就會(huì)出現(xiàn)一定量的直接到內(nèi) 容頁的流量而不經(jīng)過首頁。大部分的此類站點(diǎn)都使用了某種內(nèi)容的動(dòng)態(tài)化技術(shù),而Flood是測試這類動(dòng)態(tài)站點(diǎn)的一個(gè)不錯(cuò)方法,特別你可以將之與一些靜態(tài)站的 響應(yīng)相對比。你可以用以下的參數(shù)設(shè)置模擬對一個(gè)新聞?lì)愋偷木W(wǎng)站的訪問:Farmer Set AFarmer Set BFarmer Set CURL ListHomepage OnlyHomepage 3 stories3 story pagesRepeat Count133Count1002020Start Count555Start Delay155NotesHome page onlyHomepage StoriesStories only (RSS)測試在線商店站點(diǎn)在線商店,在線商品目錄或其它一些更具交互性的網(wǎng)站則有不同的使用模型。雖然仍會(huì)有一部分人到達(dá)你的首頁,一些人會(huì)直接進(jìn)入你站內(nèi)的某一個(gè)頁面,大多數(shù)用戶會(huì)在你的站里找來找去,他們可能會(huì)在一個(gè)產(chǎn)品頁上瀏覽大量的產(chǎn)品,進(jìn)行一些搜索或者點(diǎn)擊進(jìn)入一些相關(guān)的產(chǎn)品頁面。因此,你應(yīng)該用更大數(shù)量的地址列表測試這類站點(diǎn),更大的重復(fù)次數(shù)(以模擬大量的用戶)和相對新聞?lì)愓军c(diǎn)比較低的并發(fā)訪問數(shù)目:Farmer SetURL List10-15 pagesRepeat Count5Count50Start Count5Start Delay5測試 "Slashdot" 效應(yīng)有時(shí),你必須測試你的系統(tǒng)能否應(yīng)付某個(gè)特定時(shí)刻大量用戶同時(shí)訪問你的網(wǎng)站的情況。很多網(wǎng)站已經(jīng)遇到過這個(gè)問題,一次重大事件中對于Slashdot網(wǎng)站的幾個(gè)頁面的引用就引發(fā)了對這個(gè)頁面的巨量并發(fā)請求。典型的情況下這些請求僅針對一個(gè)特殊的頁面,我們可以通過在Flood中創(chuàng)建成百上千的家夫來并發(fā)請求服務(wù)器上的特定頁面來模擬這種情況,通過設(shè)置高重復(fù)率和延遲系統(tǒng)來模擬一定時(shí)間內(nèi)大量用戶的連續(xù)訪問。Farmer SetURL List1 pageRepeat Count50Count250Start Count100Start Delay1測試技巧為了讓以上各類測試都工作得很好,你應(yīng)該記住以下幾點(diǎn):最重要的是,不要直接在WEB服務(wù)器上用Flood進(jìn)行測試,如果你這樣做你僅僅是在測試一臺(tái)機(jī)器打開一個(gè)網(wǎng)絡(luò)連接與自己通訊的能力,一定要在另一臺(tái)機(jī)器上進(jìn)行測試。要對自己機(jī)器的一些技術(shù)限制有所了解,這包括你機(jī)器容許的最大線程數(shù)和最大網(wǎng)絡(luò)連接數(shù),如果你試圖創(chuàng)建超過這個(gè)限制的農(nóng)夫?qū)?huì)帶來讓人難以理解的測試結(jié)果。Flood是一個(gè)客戶端解決方案,因此對于在多臺(tái)機(jī)器上進(jìn)行測試沒有任何限制。事實(shí)上我們推薦你這樣做,因?yàn)檫@是一個(gè)在想進(jìn)行飽和性測試時(shí)避免你的客戶機(jī)系統(tǒng)的技術(shù)限制的好方法。Flood測試由于是在客戶機(jī)上運(yùn)行,它的表現(xiàn)也要依賴于客戶的性能,如果客戶機(jī)系統(tǒng)處于繁忙的狀態(tài),F(xiàn)lood進(jìn)程會(huì)與其它客戶進(jìn)程一樣被阻塞,因此,最好使用一臺(tái)專用的客戶機(jī)進(jìn)行測試,如果客戶機(jī)上還運(yùn)行著其它任務(wù),在開始測試之前最好關(guān)掉它們。
Apache Web 服務(wù)器
Apache 的安裝
Red Hat Linux 9 自帶了Apache2.0,以下是Apache 的安裝步驟:
#rpm -qa|grep httpd
#mount /mnt/cdrom //將第 1 張光盤放入光驅(qū)后掛裝
#cd /mnt/cdrom/red hat/rpms
#rpm -ivh httpd-2.0.40.21.i386.rpm
#rpm -ivh httpd-manual-2.0.40-21.i386.rpm
#cd;eject
在安裝時(shí),Apache 采用了一系列的缺省值,系統(tǒng)啟動(dòng)后,WWW 服務(wù)器已經(jīng)運(yùn)行。將
裝上linux+apache 的主機(jī)聯(lián)入internet 后,把自己的主頁存到/home/httpd 目錄下即可。
5.2 Apache+PHP
安裝php
#mount /mnt/cdrom //將第 1 張光盤放入光驅(qū)后掛裝
#cd /mnt/cdrom/red hat/rpms
#rpm -ivh curl-7.9.8-5.i386.rpm
#rpm -ivh gd-1.8.4-11.i386.rpm //安裝php 所需的curl 和gd
#rpm -ivh php-4.2.2-17.i386.rpm //安裝php
#rpm -ivh php-imap-4.2.2-17.i386.rpm //安裝php 的imap 支持包
#cd;eject
#mount /mnt/cdrom //將第2 張光盤放入光驅(qū)后掛裝
#cd /mnt/cdrom/red hat/rpms
#rpm -ivh php-manual-4.2.2-17.i386.rpm //安裝php 手冊
#rpm -ivh php-mysql-4.2.2-17.i386.rpm //安裝php 的mysql 支持包
#rpm -ivh php-pgsql-4.2.2-17.i386.rpm //安裝php 的pgsql 支持包
#cd;eject
在文件/usr/local/apache/conf/httpd.conf 中中添加以下語句:
addtype application/x -httpd-php .php
addtype application/x -httpd-php-source .phps
然后修改php 配置文件php.ini
register_globals=on
重啟apache 服務(wù)器
#httpd restart
然后寫個(gè)php 測試頁info.php 內(nèi)容如下:
<?php
phpinfo ()
?>
測試php:打開瀏覽器,在地址欄上輸入192.168.0.254/info.php
如果能看到php 的信息,則說明apache+php 安裝成功。
5.3 Apache+jsp
整合JDK 和TOMCAT 環(huán)境
環(huán)境:Red Hat Linux 9 apache 2.0 php4
需要軟件:(在/usr/local 下安裝) apache 安裝路徑為/usr/local/apache
1. 安裝jdk 1.4.2
#cd /usr/local/
#wget ftp ://202.96.64.158/pub/j2sdk-1_4_2_03-linux-i586.bin
#chmod a+x j2sdk-1_4_2_03-linux-i586.bin
#./j2sdk-1_4_2_03-linux-i586.bin
將所下載的j2sdk 復(fù)制到目錄/usr/local/下面以/j2sdk 為目錄
2. 安裝tomcat
#cd /usr/local/
#wget http://apache.linuxforum.net/dist/jakarta/tomcat-4/v4.1.29/bin/
jakarta-tomcat-4.1.29.tar.gz
#tar zxf jakarta-tomcat-4.1.29.tar.gz
將下載的tomcat 解壓后復(fù)制到/usr/local/下以/tomcat 為目錄
3. 為jdk 和tomcat 建立鏈接
ln -s j2sdk jdk
ln -s tomcat tomcat
4. 設(shè)置環(huán)境變量
vi /etc/profile 在最后加入以下內(nèi)容,并在系統(tǒng)中運(yùn)行一下
PATH=$PATH:/usr/local/j2sdk/bin:/usr/local/j2sdk/jre/bin
JAVA_HOME=/usr/local/j2sdk
export JAVA_HOME
CLASSPATH="./:/usr/local/j2sdk/lib:/usr/local/j2sdk/jre/lib"
export CLASSPATH
CATALINA_HOME=/usr/local/tomcat
export CATALINA_HOME
5. 編譯安裝 Connector
#cd /usr/local
#wget http://apache.linuxforum.net/dist/jakarta/tomcat-4/v4.1.29/src/
jakarta-tomcat-connectors-4.1.29-src.tar.gz
#tar zxf jakarta-tomcat-connectors-4.1.29-src.tar.gz
Web服務(wù)器故障的奇怪原因排查
伴隨著對信息化要求的不斷提升,相信多數(shù)單位都會(huì)架設(shè)自己的Web服務(wù)器,來在Internet網(wǎng)絡(luò)中發(fā)布信息、宣傳自我。為了保證任何一位上網(wǎng)用戶都能順暢地訪問到Web服務(wù)器中的內(nèi)容,網(wǎng)絡(luò)管理員在正式發(fā)布Web信息之前往往需要設(shè)置一下IIS服務(wù)器,以便確保單位的Web網(wǎng)站可以始終如一地穩(wěn)定運(yùn)行。然而很多時(shí)候,我們都會(huì)遇到Web服務(wù)器訪問失敗的故障現(xiàn)象,面對Web服務(wù)器故障,我們往往會(huì)表現(xiàn)得手忙腳亂,根本不知道該從何處著手,來解決這些Web服務(wù)器故障。其實(shí),造成Web服務(wù)器故障的因素有很多,我們需要對此進(jìn)行逐一排查,才能高效解決對應(yīng)的Web服務(wù)器故障現(xiàn)象。
Web服務(wù)器故障現(xiàn)象
為了充分展示單位的形象,擴(kuò)大單位的知名度,單位領(lǐng)導(dǎo)要求網(wǎng)絡(luò)管理員,立即拿出方案,組建有個(gè)性化特色的Web站點(diǎn),不僅確保單位內(nèi)部的員工可以通過內(nèi)網(wǎng)正常訪問Web站點(diǎn),同時(shí)還要保證外網(wǎng)用戶也能快速地訪問到本單位的站點(diǎn)內(nèi)容。依照領(lǐng)導(dǎo)指示精神,網(wǎng)絡(luò)管理員立即行動(dòng),挑選了一臺(tái)運(yùn)行性能非常高效的計(jì)算機(jī)作為服務(wù)器系統(tǒng),并在其中安裝、配置了Windows Server 2003系統(tǒng),同時(shí)利用該系統(tǒng)自帶的IIS組件架設(shè)了Web服務(wù)器;為了提高Web站點(diǎn)的訪問速度,網(wǎng)絡(luò)管理員特地將Web站點(diǎn)所在的計(jì)算機(jī)直接連到單位千兆核心交換機(jī)上,同時(shí)將目標(biāo)主機(jī)的IP地址設(shè)置成與單位普通員工所用計(jì)算機(jī)處于相同網(wǎng)段的地址。剛開始的時(shí)候,無論是內(nèi)網(wǎng)用戶,還是外網(wǎng)用戶,所有用戶都能正常地訪問單位的Web站點(diǎn)。
可是,沒有多長時(shí)間,單位內(nèi)網(wǎng)用戶在訪問Web站點(diǎn)時(shí),就遇到了訪問失敗的Web服務(wù)器故障,具體表現(xiàn)為無論從哪一臺(tái)客戶端系統(tǒng)出發(fā),使用內(nèi)網(wǎng)地址訪問單位的目標(biāo)站點(diǎn)時(shí),系統(tǒng)屏幕上都會(huì)彈出身份驗(yàn)證對話框,要求單位員工必須輸入訪問賬號與密碼,可是當(dāng)網(wǎng)絡(luò)管理員嘗試以Web站點(diǎn)的系統(tǒng)管理員身份進(jìn)行登錄操作時(shí),發(fā)現(xiàn)始終登錄不進(jìn)去;更讓人感覺到不可理解的是,網(wǎng)絡(luò)管理員趕到Web服務(wù)器現(xiàn)場,查看其安全配置時(shí),發(fā)現(xiàn)目標(biāo)Web站點(diǎn)根本就沒有啟用登錄驗(yàn)證設(shè)置,那身份驗(yàn)證對話框究竟是怎么彈出來的呢?
Web服務(wù)器故障排查
由于造成這類Web服務(wù)器故障的因素比較多,我們必須要對各種可能因素進(jìn)行依次排查,才能找到具體的Web服務(wù)器故障原因,并對癥下藥采取針對性措施來快速解決故障現(xiàn)象:
Web服務(wù)器故障排查過程1、檢查安全登錄設(shè)置
考慮到在訪問目標(biāo)Web站點(diǎn)的時(shí)候,系統(tǒng)彈出了身份驗(yàn)證對話框,這就意味著目標(biāo)Web站點(diǎn)可能在安全登錄方面沒有配置正確,造成了用戶訪問Web內(nèi)容時(shí)必須要輸入訪問賬號。依照這樣的分析思路,網(wǎng)絡(luò)管理員準(zhǔn)備先檢查一下Web服務(wù)器的安全登錄配置參數(shù),看看其中的設(shè)置是否正確;想到做到,網(wǎng)絡(luò)管理員立即來到目標(biāo)Web主機(jī)現(xiàn)場,以特權(quán)賬號登錄其中,并依次單擊“開始”/“設(shè)置”/“控制面板”選項(xiàng),從彈出的系統(tǒng)控制面板窗口中,找到“管理工具”功能圖標(biāo),并用鼠標(biāo)雙擊該圖標(biāo)選項(xiàng),進(jìn)入對應(yīng)系統(tǒng)的管理工具列表窗口;接著再用鼠標(biāo)雙擊IIS功能圖標(biāo),彈出對應(yīng)系統(tǒng)的IIS主控臺(tái)窗口,從該窗口的左側(cè)列表區(qū)域,找到目標(biāo)Web站點(diǎn)所在的計(jì)算機(jī)名稱,并用鼠標(biāo)右鍵單擊該計(jì)算機(jī)名稱,從彈出的右鍵菜單中執(zhí)行“屬性”命令,彈出目標(biāo)Web主機(jī)的屬性設(shè)置窗口;在該屬性設(shè)置窗口中點(diǎn)選“目錄安全性”選項(xiàng)卡,打開目錄安全性選項(xiàng)設(shè)置頁面;下面,在該設(shè)置頁面的“身份驗(yàn)證和訪問控制”設(shè)置項(xiàng)右邊,單擊“編輯”按鈕,進(jìn)入身份驗(yàn)證和訪問控制設(shè)置對話框,網(wǎng)絡(luò)管理員發(fā)現(xiàn)其中的“匿名訪問”、“集成Windows驗(yàn)證”等選項(xiàng)都處于選中狀態(tài),于是他嘗試著將這些參數(shù)選項(xiàng)取消選中,之后重新從內(nèi)網(wǎng)的一臺(tái)計(jì)算機(jī)中進(jìn)行Web訪問,可是相同的故障現(xiàn)象仍然存在;于是,網(wǎng)絡(luò)管理員再次選中了“匿名訪問”、“集成Windows驗(yàn)證”等選項(xiàng),可是讓他感覺非常失望的是,上面兩個(gè)選項(xiàng)無論是選中還是沒有選中,好像故障現(xiàn)象都存在,這就說明目標(biāo)Web主機(jī)的安全登錄設(shè)置與上面的故障現(xiàn)象并沒有什么關(guān)系。
Web服務(wù)器安全的4個(gè)解決方案
Web服務(wù)器安全現(xiàn)在是很嚴(yán)重的問題了,各種針對WEB服務(wù)器攻擊的方式層出不窮,如何應(yīng)對成了重要的問題,下面筆者給出4個(gè)解決方案,希望能幫助到你:
一、圈地運(yùn)動(dòng),已經(jīng)無法滿足安全的需求
在傳統(tǒng)解決方案中,有一個(gè)比較顯著的特點(diǎn),即搞圈地運(yùn)動(dòng)。如針對郵件,有一套郵件安全方案;針對FTP,有一個(gè)FTP安全解決方案。傳統(tǒng)安全解決方案,將IT領(lǐng)域根據(jù)其應(yīng)用的不同,認(rèn)為的劃分成一塊塊領(lǐng)域,然后再設(shè)計(jì)對應(yīng)的安全措施。如果只針對一種攻擊行為,這種安全解決方案,固然有效。但是在混合式攻擊面前,這種圈地性質(zhì)的解決方案,弊端就非常明顯了。因?yàn)楣粽邚囊粋(gè)方向攻擊不成,還可以從另一個(gè)方向攻擊。這種單獨(dú)的安全解決方案,無法做到面面俱到。為此企業(yè)Web應(yīng)用的安全,不能夠再依靠防火墻等解決方案來做圈地式的保護(hù)運(yùn)動(dòng);旌瞎魰(huì)借助病毒、木馬、惡意軟件、肉雞等攻擊方法,對系統(tǒng)、應(yīng)用程序等漏洞,發(fā)起攻擊。從而在比較大的范圍內(nèi)發(fā)起攻擊。
筆者建議,在應(yīng)對混合攻擊方面,要有一個(gè)比較全面的規(guī)劃,而不是各種解決方案各自為戰(zhàn)。在實(shí)際工作中,我們可以選擇一種解決方案為主,然后其它解決方案為輔,設(shè)計(jì)一個(gè)從上到下的全面的防護(hù)措施。如針對Web應(yīng)用,筆者就推薦企業(yè),可以以Web防火墻為主、然后結(jié)合郵件安全策略、FTP安全策略、SSL加密機(jī)制等手段,組成一個(gè)比較綜合的安全防護(hù)網(wǎng)。
二、漏洞,攻擊的源頭
混合攻擊,其實(shí)是多種已知攻擊手段的組合。而現(xiàn)在已知的攻擊行為,90%以上是針對系統(tǒng)以及應(yīng)用程序的漏洞展開的。俗話說,蒼蠅不叮無縫的蛋。在實(shí)際工作中,我們只要保證蛋沒有縫,那么蒼蠅也就沒這么好叮了。
故筆者建議,針對各種混合攻擊行為,最好的預(yù)防措施之一就是對系統(tǒng)以及應(yīng)用程序打上對應(yīng)的補(bǔ)丁。不過需要注意的是,這個(gè)補(bǔ)丁不光光是針對服務(wù)器,而且還包括用戶的客戶端。因?yàn)橛袝r(shí)候攻擊者非常狡猾,如果服務(wù)器攻不下的話,他們可能會(huì)先對客戶端做文章。先把客戶端拿下,做為他們?nèi)怆u,然后再對服務(wù)器發(fā)起攻擊。大部分時(shí)候,從內(nèi)部發(fā)起攻擊,要比外部發(fā)起攻擊更加容易。畢竟堡壘更容易從內(nèi)部攻破。但是有時(shí)候客戶端的數(shù)量非常的多,對每臺(tái)客戶端進(jìn)行補(bǔ)丁的管理比較困難。
在這里筆者推薦使用統(tǒng)一的補(bǔ)丁管理解決方案,如微軟的補(bǔ)丁維護(hù)方案。其原理比較簡單。先是用一臺(tái)補(bǔ)丁服務(wù)器,從微軟的下載最新的補(bǔ)丁。然后各個(gè)客戶端(包括用戶終端和服務(wù)器),每次啟動(dòng)時(shí)從服務(wù)器上下載最新的補(bǔ)丁,并進(jìn)行自動(dòng)或者手工的安裝。如果企業(yè)的安全級別比較高,筆者這里建議采用強(qiáng)制安裝。有時(shí)候補(bǔ)丁安裝會(huì)比較麻煩,如安裝完之后還需要重新啟動(dòng)。為此一些用戶會(huì)偷懶,當(dāng)服務(wù)器提示需要安裝補(bǔ)丁時(shí),他們會(huì)當(dāng)作耳邊風(fēng)。不打補(bǔ)丁,從而給企業(yè)的Web應(yīng)用安全留下隱患。針對這種情況下,采取強(qiáng)制措施,會(huì)更加的安全。采取強(qiáng)制安裝時(shí),不會(huì)征詢用戶的意見。只要管理人員認(rèn)為這個(gè)補(bǔ)丁重要,那么客戶端在重新啟動(dòng)后或者在線時(shí)就會(huì)強(qiáng)制安裝補(bǔ)丁。如果需要重新啟動(dòng)的話,也會(huì)先通知客戶端然后在一定的時(shí)間內(nèi)重新啟動(dòng),以完成補(bǔ)丁的安裝工作。
【W(wǎng)EB服務(wù)器多框架的解決方案】相關(guān)文章:
java實(shí)現(xiàn)web服務(wù)器的方法10-14
Linux系統(tǒng)Web服務(wù)器性能測試01-23
有關(guān)web服務(wù)器硬件配置的進(jìn)階知識08-20
Web Workers加速移動(dòng)Web應(yīng)用07-01
web瀏覽創(chuàng)作效果精選08-01
Web開發(fā)的教程圖解06-05
集成spring與Web容器教程10-21
基于web的綜合測評與分析05-20
Web服務(wù)中的異常處理09-17