欢迎光临
我们一直在努力

如何规划一个高容量的Apache服务器-网管专栏,WEB服务

建站超值云服务器,限时71元/月

为了规划一个高容量的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

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 如何规划一个高容量的Apache服务器-网管专栏,WEB服务
分享到: 更多 (0)