如何規(guī)劃一個(gè)高容量的Apache服務(wù)器
更新時(shí)間:2008年03月15日 18:44:21 作者:
為了規(guī)劃一個(gè)高容量的WEB服務(wù)器,我們分成以下環(huán)節(jié)來(lái)做:
一:網(wǎng)絡(luò)環(huán)境
—— ——
| |(eth0:192.168.11.8) | |(eth0:a.b.c.d)
| A |——————--------------| B|------------->ISP
—— (eth1:192.168.11.5)——
web.company.com firewall.company.com
A是局域網(wǎng)內(nèi)部的一臺(tái)WEB服務(wù)器,安裝Redhat Linux 6.X,編譯Apache+PHP4+MySQL
B是公司防火墻,外部地址為a.b.c.d,是通向Internet的唯一路徑。B上也運(yùn)行Apache
做反向代理到內(nèi)部機(jī)器B。假設(shè)公司的域名為@company.com,B是該域的域名服務(wù)器。
二:WEB目錄的組織結(jié)構(gòu)
我們計(jì)劃把WEB服務(wù)器數(shù)據(jù)文件置于一單獨(dú)的目錄/www下面,再在其下面建立相應(yīng)的
子目錄,如果我們計(jì)劃設(shè)置WEB服務(wù)器web.company.com,則建立目錄
/www/web.company.com ,結(jié)構(gòu)如下:
/www/web.company.com/public/htdocs
/cgi-bin
/www/web.company.com/staging/htdocs
/cgi-bin
/www/web.company.com/developer/htdocs
/cgi-bin
三: 訪問(wèn)方法與
對(duì)staging和developer目錄用基于端口的來(lái)訪問(wèn),分別對(duì)應(yīng)端口81,82。
下面是apache的配置文件/usr/local/apache/conf/httpd.conf中部分的
配置:
Listen 80
Listen 192.168.11.8:81
Listen 192.168.11.8:82
〈VirtualHost 192.168.11.8:81>
documentroot /www/web.company.com/staging/htdocs/
scriptalias /cgi-bin /www/web.company.com/staging/cgi-bin/
transferlog "|/usr/local/apache/bin/cronolog /usr/local/apache/logs/web/staging/%Y/%m/%d/access_log"
errorlog "|/usr/local/apache/bin/cronolog /usr/local/apache/logs/web/staging/%Y/%m/%d/error_log"
〈/VirtualHost>
〈VirtualHost 192.168.11.8:82>
documentroot /www/web.company.com/developer/htdocs/
scriptalias /cgi-bin /www/web.company.com/developer/cgi-bin/
transferlog "|/usr/local/apache/bin/cronolog /usr/local/apache/logs/web/developer/%Y/%m/%d/access_log"
errorlog "|/usr/local/apache/bin/cronolog /usr/local/apache/logs/web/developer/%Y/%m/%d/error_log"
〈/VirtualHost>
注:上面是基于端口的設(shè)置,要訪問(wèn)測(cè)試服務(wù)器,用
開(kāi)發(fā)服務(wù)器用
上面的transferlog and errorlog用了不是默認(rèn)的格式,而是Apache網(wǎng)站上建議的這種每天
一個(gè)文件的年/月/日格式,可從下載編譯
后安裝在/usr/local/apache/bin/cronolog,可查看Apache網(wǎng)站獲得更多信息。
如還有其它主頁(yè)需要在此服務(wù)器上服務(wù),如在/www下再創(chuàng)建子目錄hr.company.com(人事部門(mén))
,可為主機(jī)A創(chuàng)建IP別名,如192.168.11.9,再做同樣的基于端口的設(shè)置
三:個(gè)人主頁(yè)的情況
假定Apache以用戶(hù)組身份nobody運(yùn)行,且用戶(hù)主目錄為/home/jephe,則在此目錄下創(chuàng)建目錄
public_html
a.設(shè)置用戶(hù)主目錄/home/jephe要給nobody組以讀和執(zhí)行的權(quán)限
chmod 750 -R /home/jephe
b.設(shè)置用戶(hù)主目錄/home/jephe下public_html目錄的權(quán)限
chmod -R 2770 /home/jephe/public_html
c.設(shè)置用戶(hù)主目錄的擁有者
chown -R jephe.nobody /home/jephe/public_html
用戶(hù)可FTP上傳主頁(yè)文件至自己的目錄中,要設(shè)置/etc/inetd.conf中的FTP上載的umask默認(rèn)值
為u002,
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a -u002
然后用killall -HUP inetd生效。
最后用 訪問(wèn)個(gè)人主頁(yè)。
四:防火墻機(jī)器B上的Apache反向代理
設(shè)置如下:
NameVirtualHost a.b.c.d
〈VirtualHost a.b.c.d>
servername web.company.com
errorlog "|/usr/local/apache/bin/cronolog /var/log/httpd/web/%Y/%m/%d/error_log"
transferlog "|/usr/local/apache/bin/cronolog /var/log/httpd/web/%Y/%m/%d/access_log"
rewriteengine on
rewriterule ^(/.*)$ [P,L]
proxyrequests off
〈/VirtualHost>
五:備份
用Rsync備份主目錄/www/web.company.com/public/htdocs整個(gè)目錄,關(guān)于如何應(yīng)用RSYNC,參見(jiàn)
文章薈萃中的其它文章,主頁(yè)在rsync.samba.org
B是公司防火墻,外部地址為a.b.c.d,是通向Internet的唯一路徑。B上也運(yùn)行Apache
做反向代理到內(nèi)部機(jī)器B。假設(shè)公司的域名為@company.com,B是該域的域名服務(wù)器。
二:WEB目錄的組織結(jié)構(gòu)
我們計(jì)劃把WEB服務(wù)器數(shù)據(jù)文件置于一單獨(dú)的目錄/www下面,再在其下面建立相應(yīng)的
子目錄,如果我們計(jì)劃設(shè)置WEB服務(wù)器web.company.com,則建立目錄
/www/web.company.com ,結(jié)構(gòu)如下:
/www/web.company.com/public/htdocs
/cgi-bin
/www/web.company.com/staging/htdocs
/cgi-bin
/www/web.company.com/developer/htdocs
/cgi-bin
三: 訪問(wèn)方法與
對(duì)staging和developer目錄用基于端口的來(lái)訪問(wèn),分別對(duì)應(yīng)端口81,82。
下面是apache的配置文件/usr/local/apache/conf/httpd.conf中部分的
配置:
Listen 80
Listen 192.168.11.8:81
Listen 192.168.11.8:82
〈VirtualHost 192.168.11.8:81>
documentroot /www/web.company.com/staging/htdocs/
scriptalias /cgi-bin /www/web.company.com/staging/cgi-bin/
transferlog "|/usr/local/apache/bin/cronolog /usr/local/apache/logs/web/staging/%Y/%m/%d/access_log"
errorlog "|/usr/local/apache/bin/cronolog /usr/local/apache/logs/web/staging/%Y/%m/%d/error_log"
〈/VirtualHost>
〈VirtualHost 192.168.11.8:82>
documentroot /www/web.company.com/developer/htdocs/
scriptalias /cgi-bin /www/web.company.com/developer/cgi-bin/
transferlog "|/usr/local/apache/bin/cronolog /usr/local/apache/logs/web/developer/%Y/%m/%d/access_log"
errorlog "|/usr/local/apache/bin/cronolog /usr/local/apache/logs/web/developer/%Y/%m/%d/error_log"
〈/VirtualHost>
注:上面是基于端口的設(shè)置,要訪問(wèn)測(cè)試服務(wù)器,用
開(kāi)發(fā)服務(wù)器用
上面的transferlog and errorlog用了不是默認(rèn)的格式,而是Apache網(wǎng)站上建議的這種每天
一個(gè)文件的年/月/日格式,可從下載編譯
后安裝在/usr/local/apache/bin/cronolog,可查看Apache網(wǎng)站獲得更多信息。
如還有其它主頁(yè)需要在此服務(wù)器上服務(wù),如在/www下再創(chuàng)建子目錄hr.company.com(人事部門(mén))
,可為主機(jī)A創(chuàng)建IP別名,如192.168.11.9,再做同樣的基于端口的設(shè)置
三:個(gè)人主頁(yè)的情況
假定Apache以用戶(hù)組身份nobody運(yùn)行,且用戶(hù)主目錄為/home/jephe,則在此目錄下創(chuàng)建目錄
public_html
a.設(shè)置用戶(hù)主目錄/home/jephe要給nobody組以讀和執(zhí)行的權(quán)限
chmod 750 -R /home/jephe
b.設(shè)置用戶(hù)主目錄/home/jephe下public_html目錄的權(quán)限
chmod -R 2770 /home/jephe/public_html
c.設(shè)置用戶(hù)主目錄的擁有者
chown -R jephe.nobody /home/jephe/public_html
用戶(hù)可FTP上傳主頁(yè)文件至自己的目錄中,要設(shè)置/etc/inetd.conf中的FTP上載的umask默認(rèn)值
為u002,
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a -u002
然后用killall -HUP inetd生效。
最后用 訪問(wèn)個(gè)人主頁(yè)。
四:防火墻機(jī)器B上的Apache反向代理
設(shè)置如下:
NameVirtualHost a.b.c.d
〈VirtualHost a.b.c.d>
servername web.company.com
errorlog "|/usr/local/apache/bin/cronolog /var/log/httpd/web/%Y/%m/%d/error_log"
transferlog "|/usr/local/apache/bin/cronolog /var/log/httpd/web/%Y/%m/%d/access_log"
rewriteengine on
rewriterule ^(/.*)$ [P,L]
proxyrequests off
〈/VirtualHost>
五:備份
用Rsync備份主目錄/www/web.company.com/public/htdocs整個(gè)目錄,關(guān)于如何應(yīng)用RSYNC,參見(jiàn)
文章薈萃中的其它文章,主頁(yè)在rsync.samba.org
相關(guān)文章
- Apache為網(wǎng)絡(luò)管理員提供了豐富多彩的功能,包括目錄索引、目錄別名、內(nèi)容協(xié)商、可配置的HTTP錯(cuò)誤報(bào)告、CGI程序的SetUID執(zhí)行、子進(jìn)程資源管理、服務(wù)器端圖象映射、重寫(xiě)URL、URL拼寫(xiě)檢查以及聯(lián)機(jī)手冊(cè)man等。也就是說(shuō),如果您在Linux Server上成功安裝配置了Apache之后,您的計(jì)算機(jī)也將隨著Apache的生效而搖身一變,成為一臺(tái)名副其實(shí)的Web Server,這種變化的確是激動(dòng)人心的。2008-03-03
什么是IIS應(yīng)用程序池以及應(yīng)用程序池詳解
什么是IIS應(yīng)用程序池以及應(yīng)用程序池詳解...2007-02-02大型網(wǎng)站高并發(fā)解決方案分析之圖片服務(wù)器分離架構(gòu)
本文講述了大型網(wǎng)站高并發(fā)情況下圖片服務(wù)器分離的分析與解決方案,并給出了各種圖片服務(wù)器架構(gòu)方案及他們的優(yōu)缺點(diǎn)2018-03-03Web服務(wù)器日志統(tǒng)計(jì)分析完全解決方案
請(qǐng)注意本文已刊載在《開(kāi)放系統(tǒng)世界》2003年第二期,該文章版權(quán)屬于該雜志所有,請(qǐng)勿隨意轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)保留該聲明摘要:對(duì)于所有的ICP來(lái)說(shuō),除了保證網(wǎng)站穩(wěn)定正常運(yùn)行以外,一個(gè)重要的問(wèn)題就是網(wǎng)站訪問(wèn)量的統(tǒng)計(jì)和分析報(bào)表,這對(duì)于了解和監(jiān)控網(wǎng)站的運(yùn)行狀態(tài),對(duì)提高各個(gè)網(wǎng)站的服務(wù)能力和服務(wù)水平是必不可少的。通過(guò)對(duì)Web服務(wù)器的日志文件進(jìn)行分析和統(tǒng)計(jì),能夠有效掌握系統(tǒng)運(yùn)行情況以及網(wǎng)站內(nèi)容的受訪問(wèn)情況、加強(qiáng)對(duì)整個(gè)網(wǎng)站及其內(nèi)容的維護(hù)與管理。本文對(duì)Web服務(wù)器日志分析的原理和技術(shù)進(jìn)行討論。2008-03-03在RedHat下安裝apache jserv 1.1.2方法
雖然apache jserv的開(kāi)發(fā)小組現(xiàn)在都從事tomcat的開(kāi)發(fā),而且apache jserv只支持servlet 2.0的標(biāo)準(zhǔn),并且要加其他的軟件(gnujsp)才能支持jsp;但是apache jserv在現(xiàn)階段比tomcat穩(wěn)定,因此現(xiàn)在apache jserv+gnujsp比較適合應(yīng)用于web。如果想使用servlet2.2和jsp1.1的話(huà),請(qǐng)使用tomcat,參看tomcat的安裝。本文介紹apache jserv 1.1.1在RedHat下的安裝。2008-03-03