歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

如何規劃一個高容量的Apache服務器

一:網絡環境   —— ——     (eth0:192.168.11.    (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整個目錄  

 




Copyright © Linux教程網 All Rights Reserved