热点推荐:ASP.Net | ADO.Net | VB.Net | Web服务器 | Access | MSSQL | MySQL | Oracle | .Net控件 | Win 9x | Win 2000 | Win 2003 | DOS | Unix | 注册表 | 应用其它 | 安装调试 | 基本操作 | 使用技巧 | 系统优化 |故障处理 | 个性风格 | 病毒安全 | 专杀工具
您现在的位置: 中华IT技术网 >> Web开发 >> Web服务器 >> 正文
全文
APACHE架设网站(一)
作者:1024k    文章来源:Web    更新时间:2007-10-6
第一篇


Red Hat Linux Fadora作业系统现在都是使用APACHE 2.0,现在让我们介绍APACHE2.0来架设网站。我们的网站www.linuxunion.net就是使用APACHEL2.0来架设的。

启动apache
[root@localhost]#/etc/rc.d/init.d/httpd start

关闭apache
[root@localhost]#/etc/rc.d/init.d/httpd stop


重新启动apache
[root@localhost]#/etc/rc.d/init.d/httpd restart






APACHE2.0服务器的档案是放在/etc/httpd的目录下。底下的conf目录,主要是放置APACHE2.0主要的组态设定档hnpd.conf、Makefile和安全协定下的档案;底下的conf.d组态目錄是放置APACHE2.0要载入的组态档,包含了php.conf、perl.conf、python.conf和安全协定组态档案ssl.conf。

设定

/etc/httpd/conf/httpd.conf主要组态设定档


使用vi编辑器来编辑apache

[root@localhost]# vi /etc/httpd/conf/httpd.conf


APACHE的组态设定档httpd.conf是由全域环境组态指令、主服务器组态指令和包含文件Include组态指令所组成。我们也可以将一些组态档使用包含的方式将组态设定档包含进来。
在图中我们将其它虚拟主机的档案设定在外部,再使用Include将该组态设定档包含进来。我们也将Perl.conf、PHP.conf、Python.conf、ssl.conf、auth_mysql.conf和auth_pgsql.conf的组态档包含进入我们的httpd.conf的组态档。请参考图1-2







/etc/httpd就是APACHE网站服务器所有档案的父目錄

只要在终端打出

[root@localhost]# tree

就会如图1-3所示






设定网站服务器的全域环境组态Global Environment

我们在安装Linux Fedora作业系统的时候,apache套件已经包含在我们的电脑上了,有几处我们是需要修改的。

<<1>>Global Environment

第三十二行开始是设定网站服务器Apache全域环境组态Global Environment。

32 ### Section 1 :Global Environment


<<2>>ServerTokens指令

第四十二行的ServerTokens指令让我们防止远端的使用者观看我们Apche服务器正在执行的元件。如果我们设定註解#,则远端的使用者都可以看到我们服务器的信息。ServerTokens指令有四个值,分別是Full、OS、Minimal和ProductOnly,预设是OS。 ServerTokens指令控制服务器是否回应送到使用者端包含服务器信息及作业系统形态的标头档栏化。

43 ServerTokens OS


<<3>>ServerRoot指令

ServerRoot指令设定安装APACHE服务器档案位置的地方,预设是在“/etc/httpd”。


56 ServerRoot “/etc/httpd”

ServerRoot指令设定服务器放置的地方。一般而言,它会包含conf、logs、conf.d、modules和build子目錄。

Conf子目錄是放置httpd.conf服务器组态档的地方、logs子目錄是放置服务器记录情況的地方、conf.d子目錄是放置相关组态档被Include指令包含到httpd.conf组态档的地方、modules子目錄是放置我们用LoadModule指令载入模组的地方。


<<4>>ScoreBoardFile指令

ScoreBoardFile是设定在某些平台Apache父行程和子行程沟通的档案位置。。
ScoreBoard就是记录我们内部服务器行程的信息,在RedHat Linux Fadora 作业系统里,他将这些状态信息储存在内存中,这样就可以提高存取效能。

66 #ScoreBoardFile run/httpd.scoreboard

<<5>>PidFile 指令

PidFile指令是设定行程ID(Process ID)的档案路径,预设是在run/httpd.pid。Apache使用PidFile来储存超级使用者的行程ID。这个行程信息就是我们Apache执行的常驻行程,当我们要启动Apache服务器是,就会有行程编号,行程编号就放在/etc/httpd/run/httpd.pid 里。当我们要关掉Apache服务器时/etc/init.d/httpd就会使用到这个信息。


72 PidFile run/httpd.pid


<<6>>Timeout指令、KeepAlive指令和KeepAliveTimeout 指令

从第七十五行到第九十行都是和联机时间Timeout有关,当使用者提出联机要求,服务器就会等待Timeout指令设定的秒数,若超过Timeout所设定的传送或接收的时间,这个联机就会中断,预设Timeout是300秒。

72 Timeout 300

Timeout指令定义Apache会是为了Get要求服务、Post或PUT要求服务和ACKs 的服务三种设定等待时间。
KeepAlive指令设定是否允许持续连接APACHE服务器,预设定是“Off”关闭的,要启动则设为“On”。当提出要求已经被处理了,KeepAlive指令会指示APACHE服务器持续打开连接一段时间。


83 KeepAlive Off
KeepAlive指令可以让在同一个TCP联机的状态来提供多种要求服务。当网页文件有很多图片时,这个功能可以让我们提高将近50%的加速效能。因此,如果我们要想网站加速效能提高,可以将KeepAlive指令设为“On”。

对于HTTP/1.0的使用者,Keep-Alive持续联机不能用在动态内容CGI、SSI网页和服务器产生的目录索引。对于HTTP/1.1的使用者持续联机是预设的。


MaxKeepAliveRequests指令允许持续连接的数良,0大小无限制。数字越大效能越高。MaxKeepAliveRequests指令限制每次述线要求服务的上限。当KeepAlive为“On”时,MaxKeepAliveRequests的默认值是100较为合理。为了能够提升服务器的效能,我们建议将MaxKeepAliveRequests设定到高一点,可以设为500。



90 MaxKeepAliveRequests 100




KeepAliveTimeout指令会设定在持续连接中,服务器会等待随后要求服务的时间。预设是15秒。在持续的连接中,Apache等待后来要求服务的时间,KeepAliveTimeout指令将会指示这个时间秒数。一旦要求服务被接收,timeout的数值将被Timeout指令使用。

96 KeepAliveTimeout 15


<<7>>MPMs的组态(多任务模块)


第九十九行到第一百四十六行是设定服务器行程的数量,为了让Apache能够满足服务器的需求服务,Apache需能动态的改变服务器正在执行的行程数量。下面几个参数是我们必需指定的参数。

StartServers指令是设定服务器行程启动的数量。

MinSpareServers指令设定闲置行程的最小数量。

MaxSpareServers指令设定闲置行程的最大数量。

Maxclients指令设定同时可允许启动的行程数量。

MaxRequestsPerChild指令设定每一个子行程可以服务的请求数量。

启动服务器行程的数量。APACHE的行程先启动好,只要有使用者要求,我们就可以服务它。在这裹我们是预设8个APACHE的行程。


MPM为多行程模组(Multi processing modules)。APACHE2.0支援执行多线程,每个子行程还可以產生多个特定的执行线程。而每个子行程的执行线程可以服务于不同的请求。如果每个Apache可以產生8个子行程,而每个子行程又可以產生25个执行线程,则Apache可以產生8*25=1000个执行线程的服务。当行程是要增加或減少是由閒置执行线程来決定,而其行程是介於MinSpareServers(最小閒置行程和MaxSpareServers(最大閒置行程之间)。

行程(Process)和执行线程(Thread)最大的不同在於,执行线程是属於小行程。因为多个执行线程可以共用程式码、档案和资料,因此执行线程的档案比行程小很多。

这是行程的行程控制表。





这是Apache1.3之前的单一执行线程行程,每一个行程都是单一的执行线程。






这是在Apache 2.0的多个执行线程行程(MPM)。在Apache 2.0中每一个行程都可以产生多个执行线程,每个执行线程都有它自己的寄存器和堆栈,但是它们会共用程式码、数据和档案。这样就可以使用少量的资源来提供更多的服务。







Apache在一开始会启动一个主要的常驻行程(拥

[1] [2] 下一页

  • 上一篇文章:
  • 下一篇文章:
  • 相关文章
    最新更新
    编辑推荐
    热门图片
    频道大全
    文章阅读排行
    周排行
    月排行