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

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 98 ::
收藏到网摘: 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整个目录