GB | BIG5
|
| 首頁 > 應用技術 > Apache > 正文 |
 |
| 如何規劃一個高容量的Apache服務器? |
| http://www.linuxforum.net 吳阿亭 (2001-04-21 17:40:21) |
為了規劃一個高容量的WEB服務器,我們分成以下環節來做:
一:網絡環境
| |(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是局域網內部的一台WEB服務器,安裝Redhat Linux 6.X,編譯Apache+PHP4+MySQL
B是公司防火牆,外部地址為a.b.c.d,是通向Internet的唯一路徑。B上也運行Apache
做反向代理到內部機器B。假設公司的域名為@company.com,B是該域的域名服務器。
二:WEB目錄的組織結構
我們計劃把WEB服務器數據文件置一單獨的目錄/www下面,再在其下面建立相應的
子目錄,如果我們計劃設置WEB服務器web.company.com,則建立目錄
/www/web.company.com ,結構如下:
/www/web.company.com/public/htdocs
/cgi-bin
/www/web.company.com/staging/htdocs
/cgi-bin
/www/web.company.com/developer/htdocs
/cgi-bin
三: 訪問方法與虛擬主機
對staging和developer目錄用基端口的虛擬主機來訪問,分別對應端口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>
注:上面是基端口的虛擬主機設置,要訪問測試服務器,用http://web.company.com:81/
開發服務器用http://web.company.com:82/
上面的transferlog and errorlog用了不是默認的格式,而是Apache網站上建議的這種每天
一個文件的年/月/日格式,可從http://www.ford-mason.co.uk/resources/cronolog/下載編譯
安裝在/usr/local/apache/bin/cronolog,可查看Apache網站獲得更多信息。
http://httpd.apache.org/docs/misc/FAQ.html#rotate
如還有其它主頁需要在此服務器上服務,如在/www下再創建子目錄hr.company.com(人事部門)
,可為主機A創建IP別名,如192.168.11.9,再做同樣的基端口的虛擬主機設置
三:個人主頁的情況
假定Apache以用戶組身份nobody運行,且用戶主目錄為/home/jephe,則在此目錄下創建目錄
public_html
a.設置用戶主目錄/home/jephe要給nobody組以讀和執行的權限
chmod 750 -R /home/jephe
b.設置用戶主目錄/home/jephe下public_html目錄的權限
chmod -R 2770 /home/jephe/public_html
c.設置用戶主目錄的擁有者
chown -R jephe.nobody /home/jephe/public_html
用戶可FTP上傳主頁文件至自己的目錄中,要設置/etc/inetd.conf中的FTP上載的umask默認值
為u002,
ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a -u002
然用killall -HUP inetd生效。
最用http://web.company.com/~jephe/ 訪問個人主頁。
四:防火牆機器B上的Apache反向代理
設置如下:
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 ^(/.*)$ http://192.168.11.8/$1 [P,L]
proxyrequests off
〈/VirtualHost>
五:備份
用Rsync備份主目錄/www/web.company.com/public/htdocs整個目錄,關如何應用RSYNC,參見
文章薈萃中的其它文章,主頁在rsync.samba.org
Jephe
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
|
|
|
|
 |
★ 樊強制作 歡迎分享 ★ |