網絡平臺LAMP架構的實現與應用_第1頁
網絡平臺LAMP架構的實現與應用_第2頁
網絡平臺LAMP架構的實現與應用_第3頁
網絡平臺LAMP架構的實現與應用_第4頁
網絡平臺LAMP架構的實現與應用_第5頁
已閱讀5頁,還剩35頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、畢業(yè)論文網絡平臺LAMP架構的實現與應用系 (部)專 業(yè)(方向)學 號學生姓名指導教師提交日期畢業(yè)論文網絡平臺LAMP架構的實現與應用專 業(yè): 學 號: 學生姓名: 指導教師: 畢業(yè)論文誠信聲明書本人聲明:我所提交的畢業(yè)論文是我在指導教師指導下獨立研究、寫作的成果,論文中所引用他人的無論以何種方式發(fā)布的文字、研究成果,均在論文中加以說明;有關教師、同學和其他人員對本文的寫作、修訂提出過并為我在論文中加以采納的意見、建議,均已在我的致謝辭中加以說明并深致謝意。 論文作者簽名: 日期: 年 月 日摘 要本架構是由linux系統 + Apache/Tomcat + mysql + php/Java/

2、Jsp組合而成的一個網絡平臺的完整架構,由linux系統提供網站服務的平臺;Apache提供網絡服務和連接后臺的中間件;mysql是后臺數據庫的管理的軟件;php/Java/jsp是網頁的語言。本架構主要是實現LAMP平臺,有詳細的解說,以及論壇網站作為例子展示,還有動靜態(tài)頁面分離的應用。關鍵詞: linux Apache mysql php Java jsp目 錄中文摘要II目錄引言1一、市場現狀1(一)國內的狀況1(二)國外的狀況2二、平臺架構與相關技術的背景介紹2(一)WEB server2(二)Apache的技術介紹3(三)Tomcat的技術介紹3三、架構部署的總體設計5(一)環(huán)境的介

3、紹5(二)部署思路6四、架構部署的詳細實現7(一)LAMP的部署71 環(huán)境配置82 Apache、tomcat、jdk的安裝93 Tomcat的啟動方式jsvc方式94 Tomcat重點目錄詳解145 Tomcat配置文件的詳細解說15(二)Mysql的部署191 安裝Mysql和創(chuàng)建用戶192 創(chuàng)建用戶和初始化配置19(三)開源論壇JavaCenter_Home的部署201 論壇網頁上傳202 Tomcat配置文件修改203 開源論壇JavaCenter_Home網頁安裝22(四)網站注冊測試25五、架構的測試和應用26(一)架構的測試261 模擬數據庫不能正常運行262 模擬Tomcat不

4、能正常運行263 模擬測試結果27(二)整合Apache和Tomcat實現動靜頁面分離281 整合的目的282 整合的原理283 配置一:加載一個模塊294 配置二:定義一個Workers315 配置三:定義Apache的虛擬主機326 整合效果33(三)動靜頁面分離測試331 動靜分離測試(一)332 動靜分離測試(二)343 動靜分離測試(三)35六、結論36參考文獻36廣 東 警 官 學 院 本 科 生 畢 業(yè) 論 文 36引 言網絡是時代的新生兒,現在的網絡可以說是發(fā)展中的狀態(tài),它在生活中無處不在,用戶對該電商評價的首因效應是網站使用是否流暢。所以,好的網站平臺支持流暢的網站瀏覽給用戶

5、更好地使用,是影響首因效應的重要因素。網站為人們提供了更廣闊的環(huán)境:時間不再限制客戶、空間不再制約人們,手提電腦接入網線、或者打開Wifi連接無線網絡就能隨時隨地上網;不受傳統獲知信息的諸多限制,網頁就是百科全書,搜索引擎可以幫到你;可以隨時隨地進行海外新聞查看、網上交易,網購也是現代大學生經常會做的事情;學生自行開發(fā)網頁,并運行此網頁能使別人訪問具有鮮活的意義。本論題提供LAMP網站平臺的架構,可供學習對比,并且該架構中所用的軟件都是開源的,對于軟件的購買沒有了限制,而且架構上可以運行多種網絡開發(fā)語言,所以可以和網站開發(fā)的熱愛者一起分工,共同應用。一、 市場現狀(一)國內的狀況在我國,淘寶網

6、站是新世紀經濟迅速發(fā)展大潮流應運而生的產物。它是我國目前最大型最成功的網站,其網站背后的節(jié)點數目非常龐大,數據分布式存儲,服務器有智能DNS可以按地區(qū)劃分來選擇最近的服務器提供客戶訪問,用的軟件很多都是開源的,他們的后臺數據庫是Mysql,是阿里自己調優(yōu)并且二次開發(fā)的碩果。開源的產品如果我們熟知并運用,它的魅力是很吸引人的。目前流行的一些收費的數據庫軟件是按照服務器的cpu核數來計算價格的,如果淘寶也用收費的軟件,那么它現在目前那么龐大的節(jié)點群體,將要付巨款的服務費。而且Mysql適合分布式結構的數據庫,恰好滿足淘寶的架構需求。網絡公司一開始都是燒錢的,花銷很大,如果能一炮而紅,那么將是發(fā)展非

7、常迅速。開源的力量是強大的,很多網絡公司也在迅速發(fā)展,它鼓勵著我們百花齊放,我們也借著這股力量,使得網絡的發(fā)展更繁榮。(二)國外的狀況開源這個詞語叫Open Sources,在1999年出版了一本書,名字是Voices from the Open Source Revolution,中文版翻譯成開源革命之聲,開源的軟件,是免費的嗎?可以自由地不受限制地使用?我們都對它存有疑惑,“開源“的解釋是:自由再發(fā)行、程序必須包括源代碼、允許衍生作品。開源軟件已經成為IT行業(yè)的大勢,推動一個個IT公司像雨后春筍一樣,蓬勃發(fā)展。二、 平臺架構與相關技術的背景介紹(一)WEB ServerWEB Server

8、網絡服務,是一個信息技術的詞語。通過萬維網,將信息進行分配分發(fā),可以指一整個計算機系統,或者一套設備等。最核心的功能是接收和轉發(fā)客戶端信息。默認開放有這么兩個端口為:80和443,其中:80端口:用于普通的http訪問443端口:當你需要安全方式瀏覽網頁或者給網頁傳輸用戶名或者密碼的時候,瀏覽器里面網址會變成https:/xxx.xxx.xx這樣的地址,默認走的是443這個端口。WebServer專門用于解析HTML、JS(JavaScript)、CSS、JPG/GIF等圖片格式文件、TXT、PHP等“靜態(tài)”網頁內容。(二)Apache技術介紹Apache 是Apache軟件基金會研發(fā)的一個開

9、放源代碼的網頁服務器,依然是目前最流行的網絡服務器端軟件之一。因為它跨平臺度廣,兼容很多計算機操作系統并流暢運行,免費又開源,所以深受歡迎。 功能強大:Apache為“模塊”的設計,擴展新功能實際上就是拓展模塊。配置簡單:配置文件較簡單,易懂。速度較快:處理靜態(tài)頁面效率高,應對大規(guī)模并發(fā)連接請求也沒問題。 性能穩(wěn)定:Apache在高負載請求下性能表現依舊不俗。第一章 第二章 34(三)Tomcat技術介紹它是Apache 軟件基金會中最出名的一個核心項目Tomcat。 “湯姆貓”同樣是開源又免費的Web 應用服務器(占用的系統資源小,擴展性好),而且它被使用的時間長,幾乎入門級別的程序員都會選

10、擇它,它占用系統資源小,拓展度高,很多網站也依舊選擇Apache作為web服務器。Tomcat是Apache軟件基金會于1999年,Sun和其他公司的雅加達(雅加達)項目共同合作的一個子項目,支持Java語言運行在服務器上。從理論上說,這種容器不是一個完整的服務器軟件,因為它只能運行Java程序而不能生成HTML頁面數據,不能處理并發(fā)事務。但它集成HTTP服務器程序,它可以單獨作為一個服務器來部署軟件處理HTTP請求,但tomcat的核心技術是無法在此,所以除了發(fā)展進程以及那些用于調試和事務處理速度是指小型用戶的需求。以Tomcat作為單獨、獨立的個體網絡服務器是非常少的,一般不會這么做,普通

11、情況都會和Tomcat的父公司軟件Apache HTTP服務器一起工作。流程如下:客戶的網絡請求>Apache>Servle轉發(fā)請求>Tomcat(端口號為8009)處理>Apache>交給客戶。因此,運行在Tomcat Java程序是Servlet的模塊,它體現的是tomcat,因為核心特征引起大家的注意,和模塊的名稱叫做Catalinna。根據網站Netcraft的統計,各大網絡服務器的使用曲線圖2-1如下圖2-1一般用于小型企業(yè)的jsp頁面,該文件就交給AJP13(指向Tomcat)處理,而一個Tomcat最大連接數一般在1024以下,處理能力有限。Tomc

12、at可以獨立運行的,可以作為一個Apache 獨立的進程單獨運行的,但是一般不這樣做,因為這樣做對網頁有限制,或者對條件有更多的限制。在Tomcat中有兩個監(jiān)聽的端口,一個是8080提供網絡服務,一個是8009監(jiān)聽Apache的請求。 Tomcat的總體結構,請看圖2-2圖2-2如上圖,一個server服務器,包含多個service服務。Service服務里面有Connector和Container(容器)。容器作為連接器時負責外部連接和內部連接,其中充滿了內部庫文件。您可以選擇一個容器對應多個連接器,或多個連接器容器,形成一個服務。Service生存在server中,有人能夠給它生活,掌握它

13、生死的力量,所以Server是整個周期服務器的控制。三、架構部署的總體設計第三章 345(一)運行環(huán)境的介紹操作系統: Redhat6.3 (防火墻要關閉,iptables要清空)中間件:Tomcat -7.0.37、JDK工具、第三方模塊mod_jk.so數據庫:Mysql開發(fā)語言:php、jsp、java(二)部署思路LAMP部署思路:Apache-Tomcat + mod_jk (這是一個模塊讓Apache找到tomcat) + JDK(解析Java程序的一個工具) + Mysql + java應用(論壇)。如圖3-1,圖3-2。 圖3-1 圖3-1的流程是這樣的:HTTP客戶端瀏覽網頁

14、。服務器也就是前端調試器Apache,如果是靜態(tài)頁面,Apache就直接解析,如果請求的是動態(tài)頁面,則把動態(tài)頁面發(fā)送給后端中間件服務,這個中間件服務叫mod_jk的模塊,這個模塊根據http的版本號也有不一樣的版本號,這個模塊負責找到Tomcat,Tomcat接收到動態(tài)頁面的請求,呼叫JDK來編譯動態(tài)頁面。有數據需要的則由java servlet(容器)來調度數據庫Mysql。然后再返回數據顯示給客戶端。圖3-2圖3-2的流程更具體:前端訪問Apache,Apache有兩層容器,主要是給AJP(端口是8009)訪問的。前端容器首先找到Apache的主配置文件/etc/httpd/conf/ht

15、tpd.conf,也就是找到虛擬主機,虛擬主機會呼叫一個機器人workers模塊,這個模塊有一個配置文件Mod_jk.conf。靜態(tài)頁面Apache直接處理,動態(tài)頁面呼叫一個Mod_jk.conf,主動通過SHM,再找到AJP,通過8080端口繼續(xù)找到Server.xml,再找到Webapp和context內容。 四、 架構部署的詳細實現(一)LAMP部署說明:以下的詳細設計,帶#號開頭的是linux系統shell終端中需要輸入的代碼。1. 環(huán)境配置(1)防火墻要關閉。# vim /etc/selinux/conf SELINUX=disabled#setenforce 0關閉selinux下

16、次開機自啟動#chkconfig selinux off(2)iptables防火墻規(guī)則要清空#iptables F#service iptables save關閉iptables#service iptables stop關閉iptables下次開機自啟動#chkconfig iptalbes off(3)Host域名解析,編輯 /etc/hosts,添加如下內容:#vim /etc/hosts 本機ip (4)配置安裝軟件及依賴包的源#rm rf /etc/yum.repo/*#vim /etc/yum.repos.d/panxinxinyum.repo panxinxinyumName=

17、panxinxinyumBaseurl= enable=1gpgcheck=0(4)安裝編譯工具gcc#yum install gcc*2. Apache、Tomcat、jdk的安裝(1)在Apache官方網站 下載一個apache-tomcat-7.0.37.tar.gz,解壓到/opt目錄后可以直接使用并做一個軟連接(或者改名字)# tar xf apache-tomcat-7.0.37.tar.gz -C /opt/# ln -s /opt/apache-tomcat-7.0.37/ /opt/tomcat(2)下載一個JDK工具。將jdk解壓到

18、opt目錄后可以直接使用并做一個軟連接(或者改名字)# tar xf jdk-7u15-linux-x64.tar.gz -C /opt/# ln -s /opt/jdk1.7.0_15/ /opt/jdk(3)安裝Apache# yum install httpd3. tomcat的啟動jsvc方式(1)進入目錄/opt/tomcat/bin,解壓當前文件commons-daemon-native.tar.gz。# cd /opt/tomcat/bin/# tar xf commons-daemon-native.tar.gz 進入解壓后的目錄,找到對應系統平臺的目錄unix # cd co

19、mmons-daemon-1.0.13-native-src/unix進入unix目錄然后編譯jsvc程序( -指定jdk目錄)# ./configure -with-java=/opt/jdk # make最后把這個jsvc拷貝到tomcat目錄。# cp jsvc /opt/tomcat/bin (2)創(chuàng)建啟動tomcat腳本,添加catalina的目錄(也就是tomcat的目錄),方便啟動。# vim /etc/rc.d/init.d/tomcat #!/bin/bash# tomcat Startup script for the Apache Tomcat Server# chkco

20、nfig: - 81 21# description: Apache Tomcat is a servlet/JSP container.# processname: tomcat# Source function library. /etc/rc.d/init.d/functionsJAVA_HOME=/opt/jdkCATALINA_HOME=/opt/tomcatCATALINA_BASE=/opt/tomcatTOMCAT_USER=rootprog=tomcatlockfile=/var/lock/subsys/tomcatpidfile=/var/run/tomcat.pidRET

21、VAL=0# Ensure that any user defined CLASSPATH variables are not used on startup,# but allow them to be specified in setenv.sh, in rare case when it is needed.CLASSPATH=JAVA_OPTS=if -r "$CATALINA_BASE/bin/setenv.sh" ; then. "$CATALINA_BASE/bin/setenv.sh"elif -r "$CATALINA_HOM

22、E/bin/setenv.sh" ; then. "$CATALINA_HOME/bin/setenv.sh"fi# Add on extra jar files to CLASSPATHtest ".$CLASSPATH" != . && CLASSPATH="$CLASSPATH:"CLASSPATH="$CLASSPATH$CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/commons-daemon.jar"test "

23、.$CATALINA_OUT" = . &&CATALINA_OUT="$CATALINA_BASE/logs/catalina-daemon.out"test ".$CATALINA_TMP" = . &&CATALINA_TMP="$CATALINA_BASE/temp"# Add tomcat-juli.jar to classpath# tomcat-juli.jar can be over-ridden per instanceif -r "$CATALINA_BASE/b

24、in/tomcat-juli.jar" ; thenCLASSPATH="$CLASSPATH:$CATALINA_BASE/bin/tomcat-juli.jar"elseCLASSPATH="$CLASSPATH:$CATALINA_HOME/bin/tomcat-juli.jar"fi# Set juli LogManager config file if it is present and an override has not been issuedif -z "$LOGGING_CONFIG" ; thenif

25、-r "$CATALINA_BASE/conf/perties" ; thenLOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_BASE/conf/perties"else# Bugzilla 45585LOGGING_CONFIG="-Dnop"fifitest".$LOGGING_MANAGER"= .&&LOGGING_MANAGER="-Djava.util.logging

26、.manager=org.apache.juli.ClassLoaderLogManager"JAVA_OPTS="$JAVA_OPTS $LOGGING_MANAGER"# The semantics of these two functions differ from the way apachectl does# things - attempting to start while running is a failure, and shutdown# when not running is also a failure. So we just do it

27、the way init scripts# are expected to behave here.start() echo -n $"Starting $prog: "$CATALINA_HOME/bin/jsvc -home "$JAVA_HOME" -jvm server -user "$TOMCAT_USER" -outfile "$CATALINA_OUT" -errfile "&1" -pidfile $pidfile -classpath "$CLASSPATH&

28、quot; "$LOGGING_CONFIG" $JAVA_OPTS $CATALINA_OPTS -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -Dcatalina.base="$CATALINA_BASE" -Dcatalina.home="$CATALINA_HOME" -Djava.io.tmpdir="$CATALINA_TMP" org.apache.catalina.startup.BootstrapRETVAL=$? $RETVAL = 0

29、 && touch $lockfile && echo_success | echo_failureechoreturn $RETVAL# When stopping httpd a delay of >10 second is required before SIGKILLing the# httpd parent; this gives enough time for the httpd parent to SIGKILL any# errant children.stop() echo -n $"Stopping $prog: "

30、$CATALINA_HOME/bin/jsvc -stop -home $JAVA_HOME -jvm server -pidfile $pidfile -classpath "$CLASSPATH" -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" -Dcatalina.base="$CATALINA_BASE" -Dcatalina.home="$CATALINA_HOME" -Djava.io.tmpdir="$CATALINA_TMP" org.apa

31、che.catalina.startup.BootstrapRETVAL=$? $RETVAL = 0 && rm -f $lockfile && echo_success | echo_failureechoreturn $RETVALcase "$1" instart)start;stop)stop;restart)stopstart;*)echo $"Usage: $prog start|stop|restart"exit 1esacexit $RETVAL(3)加tomcat到啟動列表# chkconfig -ad

32、d tomcat# chkconfig tomcat on(4)啟動tomcat服務并且查看其進程和端口。Jsvc只開兩個端口,提高了安全性。# service tomcat start# netstat -tnlp |grep jsvc tcp 0 0 :8009 :* LISTEN 8972/jsvc.exec tcp 0 0 :8080 :* LISTEN 8972/jsvc.exec (5)訪問http:/localhost:8080/ ,可以看到tomcat的主頁,證明tomcat安裝成功。主頁如下圖4-1。圖4-14. Tomcat 重點目錄詳解l Bin 存放啟動和關閉tomca

33、t的腳本,腳本是二進制命令。l Tmp 存放臨時文件。l Conf 存放不同的配置文件(server.xml和web.xml 或者其他)。l Doc 存放文檔。l Lib 存放運行需要的內部庫文件。l Logs 存放執(zhí)行時的log日志文件。l Src 存放tomcat 的源代碼。l Webapps tomcat的主要jsp網頁目錄(包括應用程序示例)。l Work 工作目錄,存放jsp 編譯后產生的calss文件;解析的中間結果集(以后再次訪問九直接讀取結果集)5. tomcat配置文件的詳細解說Tomcat的配置文件目錄為/*/tomcat/conf/server.xml,配置文件的內容有如

34、下圖4-2.圖4-2<Server>元素 它代表整個容器的,是org.apache.catalina的元素,更是頂部元素,更是Tomcat實例。它包含一個或多個<service>元素。不能用作任何元素的子元素。1>className:實現接口的類。2>port: 監(jiān)聽shutdown命令的端口. 3>shutdown: 此屬性必須設置為SHUTDOWN 例圖如下圖4-3圖4-3<Service>元素 該元件包含一個<Engine>元素,和多個“連接”,這些元件用相同的元件共用連接器引擎。1>name: 定義Service的

35、名字,默認是Catalina. 例圖4-4如下圖4-4<Connector>元素代表請求的連接器“端點”表示已被接收和響應所需的。通過相關聯的“容器”,每個連接器用來處理該請求。默認情況下,HTTP /1.1非SSL連接器綁定到端口8080,還可以有第二個連接器建立一個SSL的HTTP/1.1,端口是8443。例圖4-5如下圖4-5<Engine>元素 一個引擎元素對應一個Service,處理接收到的客戶請求. 1>defaultHost: 默認的主機名指定為<引擎>的默認主機。在與客戶打交道的<Host>子元素必須在主機中定義。2>

36、name: 定義Engine的名字 。在<Engine>可以包含如下元素<Logger>, <Realm>, <Value>, <Host>。例圖4-6如下圖4-6<Host>元素1> appBase : 指定虛擬主機目錄,一般指定為<CATALINA_HOME>的相對目錄。如果未選中,默認是<CATALINA_HOME>/webapps為默認路徑。它將自動匹配Context的路徑。2> autoDeploy: 如果設置為真,有一個新的Web應用頁面或者程序添加,該Web應用程序的操作會

37、被自動發(fā)布。3> unpackWARs: War為壓縮文件。該設置為真,表示程序可識別擴展的壓縮文件,然后運行解壓后的目錄。如果設置為假,則將直接作為壓縮文件運行。 4> alias: 別名 5> deployOnStartup: Tomcat服務器啟動時是否要主動加載虛擬主機目錄下所有的網頁或者應用并且發(fā)布。默認采用Context目錄(/opt/tomcat/webapps),但是如果server.xml有相應的<Context>元素,將被優(yōu)先采用。例圖4-7如下圖4-7<Context>元素它描述了信息的應用環(huán)境,是一個抽象的概念。通過它我們可以得

38、到的資源和應用程序類,包括一些應用層的操作,如:啟動活動,發(fā)送廣播,接受意向信息。個人的理解就是一個容器,一個變量在這個。容器里的作用域范圍,它所能做的事不能超過這個容器的最大范圍。如例圖4-8 1> Path: 指定訪問Web應用的URL入口,注意/webroot,是目錄。2> Reloadable: 如果這個屬性設為true, Tomcat服務器在運行狀態(tài)下如果監(jiān)視到有網頁文件被更新,就自動加載。圖4-8(二)Mysql的部署1.安裝mysql 和創(chuàng)建用戶Redhat6.3系統光盤自帶mysql軟件,可以直接安裝,并啟動。# yum -y install mysql-serve

39、r mysql# service mysqld start# mysql 2.創(chuàng)建用戶和初始化配置(1)登錄mysql后進行初始化配置,把空用戶刪掉,修改本地root登錄用戶密碼為123。mysql> delete from mysql.user where user=''mysql> UPDATE mysql.user SET password=password('panxinxin') where user='root' AND host='localhost' mysql> flush privi

40、leges; (2)為java論壇創(chuàng)建數據庫及對應數據庫用戶:mysql> create database java1;mysql> grant all on java1.* to runjava1'localhost' identified by 'java1'(3)服務器重啟,手工啟動mysql服務。#service mysqld start(三)開源論壇JavaCenter_Home的部署1. 論壇頁面上傳在網站搜索下載一個開源論壇JavaCenter_Home_2.0_Source_UTF8.zip。新建網頁文件目錄,目錄名為# mkdir

41、/webroot/ -p# unzip JavaCenter_Home_2.0_Source_UTF8.zip # cp -r JavaCenter_Home_2.0_Source_UTF8/source/WebRoot/* /webroot/ 2. Tomcat配置文件修改(1)修改Tomcat的配置文件,發(fā)布這個頁面。修改后配置文件內容如下圖4-9,和接駁文字。#vim /opt/tomcat/conf/server.xml圖4-9圖4-9的代碼部分不變動,下面文字才是需要變動的。 <Host name="" appBase="webapps"

42、 unpackWARs="true" autoDeploy="true" deployOnStartup="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="java1_gdpc_access_log." suffix=".txt" pattern="%h %l %u %t &quot;%r&

43、amp;quot; %s %b" /><Context path="" docBase="/webroot/ " > </Context> </Host> </Engine> </Service></Server>(2)修改了配置文件,重啟Tomcat服務# Service tomcat restart3. 開源論壇JavaCenter_Home頁面安裝因為這個開源論壇有自己的install安裝頁面,所以我們可以直接在瀏覽器打開 :8080/install,按照下面的

44、命令逐一對應輸入:(1)首頁如下圖4-10:圖4-10(2)然后填寫與數據庫連接的信息:數據庫服務器地址 localshost數據庫服務端端口 3306數據庫用戶名 runjava1數據庫密碼 java1數據庫名java1表明前綴(默認)填寫情況如下圖4-11:圖4-11(3)填寫用戶名密碼,開通管理空間。用戶名 admin密碼 admin例如如下圖4-12:圖4-12(4)安裝完成??梢苑謩e進入空間首頁和管理平臺。如圖4-13圖4-13(四)網站注冊測試(1)登錄空間首頁,然后注冊一個自己的賬號panxinxin,密碼是123。如圖4-14.圖4-14(2)注冊后,可以正常使用網站了。發(fā)表心

45、情,開始和別人的交流。如圖4-15圖4-15五、架構的測試和應用(一)架構的測試1. 模擬數據庫不能正常運行測試內容:模擬數據庫不能正常運行。如圖5-1操作:# service mysqld stop結果:網頁連接出現500錯誤圖5-12. 模擬tomcat程序不能正常運行測試內容:模擬Tomcat程序不能正常運行。操作:修改Tomcat的Server.xml配置文件出錯,少了一個對應context,如圖5-2。結果:網頁無法連接 ,如圖5-3。圖5-2圖5-33. 模擬測試結果整個網頁由Tomcat支撐著,提供服務。如果訪問量過大或者數據庫掉線了,那么網頁將訪問不了。而且論壇的網頁有動態(tài),有

46、靜態(tài),可以實現動靜態(tài)分離,使得系統的處理能力更均衡高效。(二)整合Apache和Tomcat實現動靜頁面分離1. 整合的目的整合是提供一種在現有的硬件的最大負載的最重要手段。如果單獨用Tomcat做 JSP的服務器,將出現因為超出并發(fā)連接的最大數目1024所以工作效率低的情況,Tomcat的處理能力不如靜態(tài)HTML的Apache。在實際中,當更多的并發(fā)連接發(fā)生時,Tomcat的將是在一個“僵死”狀態(tài),響應的后續(xù)請求連接損耗。所以現在提出了互相磨合互相配合方案(因為Tomcat是Apache公司下的項目,屬于同一個公司,其磨合程度很高): Tomcat處理動態(tài)頁面,例如jsp等;靜態(tài)頁面交給Ap

47、ache處理。 Apache和Tomcat充分發(fā)揮各自特長,而且磨合度高,非常適合組合在一起,使得整合網絡服務很流暢。 2. 整合的原理 在Apache中裝載一個模塊,這個模塊叫mod_jk; Apache的80端口負責解析靜態(tài)網頁內容; 其他動態(tài)的信息,告訴mod_jk,讓mod_jk去找Apache。這個模塊相當于是apache與tomcat之間的橋梁。想象工Worker是Tomcat的員工,代表一個實例,屬于Connector 連接這個部門。例如Apache傳遞請求到Tomcat進程,是放在Servelet(相當于前臺)那里,再由工作人員Worker進行后臺

48、處理。它執(zhí)行著一些Servelet的程序。不同的虛擬主機可以使用不同的Tomcat流程進行處理,這應該是彼此完全獨立個體的。多重的Tomcat worker在同一臺機器上運行又意味著可以均衡分布工人之間的Web請求,這樣就是負載均衡。整合之后流程如下:直接訪問Apache 的http 80端口為入口>調用mod_jk模塊>調用Workers>交給AJP傳給Tomcat>Tomcat調用java>java處理*.Jsp頁面Tomcat workers的定義文件是 perties,具體的使用說明這里不作詳細解釋。Apache如何配置虛擬主機在本文

49、中亦不作詳細解釋。3. 配置一:加載一個第三方模塊(1)在網上搜索這個模塊mod_jk-1.2.30-httpd-2.2.X,在Apache配置文件中,加載它,定義一個搬運工worker給tomcat,定義一個模塊的配置文件,定義哪些動態(tài)頁面的類型。# vim /etc/httpd/conf/httpd.conf#指定模塊路徑LoadModule jk_module modules/mod_jk.so #定義appache是如何呼叫tomcat程序處理jsp頁面Include conf/mod_jk.conf#指定mod_jk的workers定義JkWorkersFile conf/worke

50、perties#加載workers的請求處理分配文件JkMountFile conf/perties (2)創(chuàng)建mod_jk模塊,也就是將模塊拷貝到/etc/httpd/modules/目錄下:# cp mod_jk-1.2.30-httpd-2.2.X.so /etc/httpd/modules/mod_jk.so(3)定義mod_jk的級別、日志文件、日志格式、啟動訪問的日志、請求,mod_jk的選項。這個文件是直接新建的。# vim /etc/httpd/conf/mod_jk.conf#指定日志級別JkLogLevel warn#指定jk的日

51、志輸出文件JkLogFile logs/jk.logJkShmFile logs/jk-runtime-status#時間戳格式#%y 兩位數的年份表示(00-99)#%Y 四位數的年份表示(000-9999)#%m 月份(01-12)#%d 月內中的一天(0-31)#%H 24小時制小時數(0-23)#%I 12小時制小時數(01-12)#%M 分鐘數(00=59)#%S 秒(00-59)#%a 本地簡化星期名稱#%A 本地完整星期名稱#%b 本地簡化的月份名稱#%B 本地完整的月份名稱#%c 本地相應的日期表示和時間表示#%j 年內的一天(001-366)#%p 本地A.M.或P.M.的等

52、價符#%U 一年中的星期數(00-53)星期天為星期的開始#%w 星期(0-6),星期天為星期的開始#%W 一年中的星期數(00-53)星期一為星期的開始#%x 本地相應的日期表示#%X 本地相應的時間表示#%Z 當前時區(qū)的名稱#% %號本身JkLogStampFormat “%a %b %d %H:%M:%S %Y”#Options Description(選項的說明)# %b 發(fā)送的字節(jié), 不包括 HTTP headers (CLF format)# %B 發(fā)送的字節(jié), 不包括 HTTP headers# %H 協議# %m 請求方式(get/post)# %p 服務器響應請求的規(guī)范端口.

53、# %q 查詢字符串 (如果存在以?開頭,否則是空串)# %r 請求的第一行.# %s HTTP狀態(tài)碼# %T 請求間隔, 處理請求耗費的時間 秒.微秒# %U 請求的url路徑,不包含查詢字符串.# %v 響應請求的規(guī)范服務器名字# %V 根據UseCanonicalName設置的服務器名字.# %w Tomcat worker 名字#JkRequestLogFormat 設置個人用戶請求的log格式.JkRequestLogFormat “%w %V %T”JkOptions +ForwardKeySize +ForwardURICompat - ForwardDirectories4. 配置二:定義一個Workers (1)編輯文件/et

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論