当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > 如何规划一个高容量的Apache服务器

Linux服务器
linux下用cron定时执行任务的方法
.htaccess绑定域名到子目录的方法
linux apache下虚拟主机配置方法
apache 局域网访问配置方案
linux Apache服务器系统安全设置与优化
linux中mac地址绑定方法
linux托盘不断闪烁之解决方法
Apache配置 虚拟转向实例
Apache No space left on device的解决办法
Apache rewrite的重写相关的参数说明
LINUX入门级常用命令20条整理
Ubuntu设置开机自动挂载所有格式硬盘分区
5个可能被你忽略的Linux安全设置方法
学习Apache的mod rewrite、access写法
改版时保留原链接,创建新的URL的方法
rsync中文手册之使用rsync实现网站镜像和备份linux
rsync 数据同步使用详解
linux URL的301重定向代码分析
eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池
Apache服务器二级域名的完美实现

Linux服务器 中的 如何规划一个高容量的Apache服务器


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 71 ::
收藏到网摘: n/a


一:网络环境
————
||(eth0:192.168.11. ||(eth0:a.b.c.d)
| A|——————--------------| B|------------->ISP 
——(eth1:192.168.11.5)——
web.company.comfirewall.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 streamtcp nowaitroot/usr/sbin/tcpdin.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整个目录