唐山网站建设

设为主页 加入收藏 繁體中文

Apache服务器配置全攻略

核心提示:Apache服务器的设置文件位于/usr/local/apache/conf/目录下,传统上使用3个配置文件httpd.conf,access.conf和srm.conf,来配置Apache服务器的行动。 httpd.conf提供了最基本的服务器配置,是对守护程序httpd如何运行的技术描写;srm.conf是服务器的资源映照文件,告

Apache服务器的设置文件位于/usr/local/apache/conf/目录下,传统上使用3个配置文件httpd.conf,access.conf和srm.conf,来配置Apache服务器的行动。

httpd.conf提供了最基本的服务器配置,是对守护程序httpd如何运行的技术描写;srm.conf是服务器的资源映照文件,告知服务器各种文件的MIME类型,和如何支持这些文件;access.conf用于配置服务器的访问权限,控制不同用户和计算机的访问限制;这3个配置文件控制着服务器的各个方面的特性,因此为了正常运行服务器便需要设置好这3个文件。

除这3个设置文件之外,Apache还使用mime.types文件用于标识不同文件对应的MIME类型, magic文件设置不同MIME类型文件的1些特殊标识,使得Apache 服务器从文档后缀不能判定出文件的MIME 类型时,能通过文件内容中的这些特殊标记来判定文档的MIME类型。

bash⑵.02$ ls -l /usr/local/apache/conf

total 100

-rw-r--r-- 1 root wheel 348 Apr 16 16:01 access.conf

-rw-r--r-- 1 root wheel 348 Feb 13 13:33 access.conf.default

-rw-r--r-- 1 root wheel 30331 May 26 08:55 httpd.conf

-rw-r--r-- 1 root wheel 29953 Feb 13 13:33 httpd.conf.default

-rw-r--r-- 1 root wheel 12441 Apr 19 15:42 magic

-rw-r--r-- 1 root wheel 12441 Feb 13 13:33 magic.default

-rw-r--r-- 1 root wheel 7334 Feb 13 13:33 mime.types

-rw-r--r-- 1 root wheel 383 May 13 17:01 srm.conf

-rw-r--r-- 1 root wheel 357 Feb 13 13:33 srm.conf.default

事实上当前版本的Apache将原来httpd.conf、srm.conf与access.conf中的所有配置参数均放在了1个配置文件 httpd.conf中,只是为了与之前的版本兼容的缘由(使用这3个设置文件的方式来源于NCSA-httpd),才使用3个配置文件。而提供的 access.conf和srm.conf文件中没有具体的设置。

由于在新版本的Apache中,所有的设置都被放在了httpd.conf中,因此只需要调剂这个文件中的设置。以下使用缺省提供的httpd.conf为例,解释Apache服务器的各个设置选项。但是没必要由于它提供设置的参数太多而烦恼,基本上这些参数都很明确,也能够不加改动运行Apache服务器。但假设需要调剂Apache服务器的性能,和增加对某种特性的支持,就需要了解这些设置参数的含义。

关于Apache服务器的性能,在Internet上存在很大的争议,基本上使用Apache的使用者几近都不怀疑它的优秀性能, Apache也支持了很多著名的高负载的网站,但是在贸易机构的评测中,Apache常常得分不高。很多人指出,在这些评测中,贸易Web服务器及其操纵系统常常由其专业公司的工程师进行过性能调剂,而Free 的操纵系统和Web服务器常常就使用其缺省配置或仅仅作很小的更改。需要指出的是,除操纵系统的性能调剂之外,Apache 服务器本身的缺省配置尽不是最优化和最高效的,而是要适应几近所有种类操纵系统、所有种类硬件下的设置,多平台的软件不可能为特定平台和特定硬件提供最优化的缺省配置。因此要使用Apache的时候,性能调剂是必不可少的。

1 2 3 4 5 6 下1页

核心提示:Apache服务器的设置文件位于/usr/local/apache/conf/目录下,传统上使用3个配置文件httpd.conf,access.conf和srm.conf,来配置Apache服务器的行动。 httpd.conf提供了最基本的服务器配置,是对守护程序httpd如何运行的技术描写;srm.conf是服务器的资源映照文件,告

 

在贸易评测中忽视了的另1个事实是,评测时常常对不同种类的功能进行比较,例如使用Apache的标准CGI 的性能与ISAPI,NSAPI等服务器端API比较,事实上Apache服务器与此可以比较的功能为 modperl ,FastCGI,与ASP类似的功能为PHP等等,只不过由于Apache的开放模式,这些功能是由独立的开发组,作为独立的模块来实现的。但是在评测中,测试职员没有加进相应的模块评测其性能。

HTTP守护进程的运行参数

httpd.conf中首先定义了1些httpd守护进程运行时需要的参数,来决定其运行方式和运行环境。

ServerType standalone

ServerType定义服务器的启动方式,缺省值为独立方式standalone,httpd服务器将由其本身启动,并驻留在主机中监视连接要求。在Linux下将在启动文件 /etc/rc.d/rc.local/init.d/apache中自动启动Web服务器,这类方式是推荐设置。

启动Apache服务器的另1种方式是inet方式,使用超级服务器inetd监视连接要求并启动服务器。当需要使用inetd启动方式时,便需要更改成这个设置,并屏蔽/etc/rc.d/rc.local/init.d/apache文件,和更改/etc/inetd.conf并重起 inetd,那末Apache便可以从inetd中启动了。

两种方式的辨别是独立方式是由服务器本身治理自己的启动进程,这样在启动时能立即启动服务器的多个副本,每个副本都驻留在内存中,1有连接要求不需要天生子进程便可以够立即进行处理,对客户浏览器的要求反应更快,性能较

高。而 inetd方式要由inetd发现有连接要求后才往启动http服务器,由于inetd 要监听太多的端口,因此反应较慢、效率较低,但节俭了没有连接要求时Web服务器占用的资源。因此inetd方式只用于偶然被访问并且不要求访问速度的服务器上。事实上inetd方式不合适http的突发和多连接的特性,由于1个页面可能包括多个图象,而每个图象都会引发1个连接要求,即使固然访问人数造成教少,但瞬间的连接要求并很多,这就遭到 inetd性能的限制,乃至会影响由inetd启动的其他服务器程序。

上1页 1 2 3 4 5 6 下1页

核心提示:Apache服务器的设置文件位于/usr/local/apache/conf/目录下,传统上使用3个配置文件httpd.conf,access.conf和srm.conf,来配置Apache服务器的行动。 httpd.conf提供了最基本的服务器配置,是对守护程序httpd如何运行的技术描写;srm.conf是服务器的资源映照文件,告

ServerRoot "/usr/local"

ServerRoot用于指定守护进程httpd的运行目录,httpd在启动以后将自动将进程确当前目录改变成这个目录,因此假设设置文件中指定的文件或目录是相对路径,那末真实路径就位于这个ServerRoot定义的路径之下。

由于httpd会常常进行并发的文件操纵,就需要使用加锁的方式来保证文件操纵不冲突,由于NFS文件系统在文件加锁方面能力有限,因此这个目录应当是本地磁盘文件系统,而不应当使用NFS文件系统。

#LockFile /var/run/httpd.lock

LockFile参数指定了httpd守护进程的加锁文件,1般不需要设置这个参数, Apache服务器将自动在ServerRoot下面的路径中进行操纵。但假设ServerRoot为NFS文件系统,便需要使用这个参数指定本地文件系统中的路径。

PidFile /var/run/httpd.pid

PidFile指定的文件将记录httpd守护进程的进程号,由于httpd能自动复制其本身,因此系统中有多个httpd进程,但只有1个进程为最初启动的进程,它为其他进程的父进程,对这个进程发送信号将影响所有的httpd进程。PidFILE定义的文件中就记录httpd父进程的进程号。

ScoreBoardFile /var/run/httpd.scoreboard

httpd使用ScoreBoardFile来保护进程的内部数据,因此通常不需要改变这个参数,除非治理员想在1台计算机上运行几个 Apache服务器,这时候每个Apache服务器都需要独立的设置文件htt pd.conf,并使用不同的ScoreBoardFile。

#ResourceConfig conf/srm.conf

#AccessConfig conf/access.conf

这两个参数ResourceConfig和AccessConfig,就用于和使用 srm.conf 和 access.conf 设置文件的老版本Apache兼容。假设没有兼容的需要,可以将对应的设置文件指定为/dev/null,这将表示不存在其他设置文件,而仅使用 httpd.conf 1个文件来保存所有的设置选项。

Timeout 300

Timeout定义客户程序和服务器连接的超时间隔,超过这个时间间隔(秒)后服务器将断开与客户机的连接。

KeepAlive On

在HTTP 1.0中,1次连接只能作传输1次HTTP要求,而KeepAlive参数用于支持HTTP 1.1版本的1次连接、屡次传输功能,这样便可以够在1次连接中传递多个HTTP要求。固然只有较新的浏览器才支持这个功能,但还是打开使用这个选项。

MaxKeepAliveRequests 100

MaxKeepAliveRequests为1次连接可以进行的HTTP要求的最大要求次数。将其值设为0将支持在1次连接内进行无穷次的传输要求。事实上没有客户程序在1次连接中要求太多的页面,通常达不到这个上限就完成连接了。

KeepAliveTimeout 15

KeepAliveTimeout测试1次连接中的屡次要求传输之间的时间,假设服务器已完成了1次要求,但1直没有接收到客户程序的下1次要求,在间隔超过了这个参数设置的值以后,服务器就断开连接。

上1页 1 2 3 4 5 6 下1页

核心提示:Apache服务器的设置文件位于/usr/local/apache/conf/目录下,传统上使用3个配置文件httpd.conf,access.conf和srm.conf,来配置Apache服务器的行动。 httpd.conf提供了最基本的服务器配置,是对守护程序httpd如何运行的技术描写;srm.conf是服务器的资源映照文件,告

在使用子进程处理HTTP要求的Web服务器上,由于要首先天生子进程才能处理客户的要求,因此反应时间就有1点延迟。但是,Apache服务器使用了1个特殊技术来摆脱这个题目,这就是预先天生多个空余的子进程驻留在系统中,1旦有要求出现,就立即使用这些空余的子进程进行处理,这样就不存在天生子进程酿成的延迟了。在运行中随着客户要求的增多,启动的子进程会随之增多,但这些服务器副本在处理完1次 HTTP要求以后其实不立即退出,而是停留在计算机中等待下次要求。但是空余的子进程副本不能光增加不减少,太多的空余子进程没有处理任务,也占用服务器的处理能力,因此也要限制空余副本的数目,使其保持1个合适的数目,使得既能及时回应客户要求,又能减少没必要要的进程数目。

因此便可以够使用参数MinSpareServers来设置最少的空余子进程数目, 和使用参数MaxSpareServers 来限制最多的空闲子进程数目,过剩的服务器进程副本就会退出。根据服务器的实际情况来进行设置,假设服务器性能较高,并且也

被频繁访问,就应当增大这两个参数的设置。对高负载的专业网站,这两个值应当大致相同,并且同等于系统支持的最多服务器副本数目,也减少没必要要的副本退出。

StartServers 5

StartServers参数就是用来设置httpd启动时启动的子进程副本数目,这个参数与上面定义的MinSpareServers和 MaxSpareServers参数相干,都是用于启动空闲子进程以进步服务器的反应速度的。这个参数应当设置为前两个值之间的1个数值,小于 MinSpareServers和大于MaxS pareServers都没故意义。

MaxClients 150

在另1方面,服务器的能力究竟是有限的,不可能同时处理无穷多的连接要求,因此参数Maxclient s就用于规定服务器支持的最多并发访问的客户数,假设这个值设置得过大,系统在繁忙时不能不在过量的进程之间进行切换来为太多的客户进行服务,这样对每个客户的反应就会减慢,并下降了整体的效率。假设这个值设置的较小,那末系统繁忙时就会拒尽1些客户的连接要求。当服务器性能较高时,便可以够适当增加这个值的设置。对专业网站,应当使用进步服务器效率的策略,因此这个参数不能超过硬件本身的限制,假设频繁出现拒尽访问现象,就说明需要升级服务器硬件了。对非专业网站,不太在乎对客户浏览器的反应速度,或以为反应速度较慢也比拒尽连接好,就也能够稍微超过硬件条件来设置这个参数。

这个参数限制了MinSpareServers和MaxSpareServers的设置,它们不应当大于这个参数的设置。

MaxRequestsPerChild 30

使用子进程的方式提供服务的Web服务,常常使用的方式是1个子进程为1次连接服务,这样酿成的题目就是每次连接都需要天生、退出子进程的系统操纵,使得这些额外的处理进程占据了计算机的大量处理能力。因此最好的方式是1个子进程可以为屡次连接要求服务,这样就不需要这些天生、退出进程的系统消耗,Apache就采取了这样的方式,1次连接结束后,子进程其实不退出,而是停留在系统中等待下1次服务要求,这样就极大的进步了性能。

但由于在处理进程中子进程要不断的申请和开释内存,次数多了就会造成1些内存垃圾,就会影响系统的稳定性,并且影响系统资源的有效利用。因此在1个副本处理过1定次数的要求以后,便可以够让这个子进程副本退出,再从原始的httpd进程中重新复制1个干净的副本,这样便可以进步系统的稳定性。这样,每个子进程处理服务要求次数由MaxRe questPerChild定义。 缺省的设置值为30,这个值对具有高稳定性特点的Linux系统来讲是过于守旧的设置,可以设置为1000乃至更高,设置为0支持每个副本进行无穷次的服务处理。

#Listen 3000

#Listen 12.34.56.78:80

#BindAddress *

Listen参数可以指定服务器除监视标准的80端口之外,还监视其他端口的HTTP要求。由于FreeBSD系统可以同时具有多个IP地址,因此也能够指定服务器只听取对某个BindAddress< /B>的IP地址的HTTP要求。假设没有配置这1项,则服务器会回应对所有IP的要求。

上1页 1 2 3 4 5 6 下1页

核心提示:Apache服务器的设置文件位于/usr/local/apache/conf/目录下,传统上使用3个配置文件httpd.conf,access.conf和srm.conf,来配置Apache服务器的行动。 httpd.conf提供了最基本的服务器配置,是对守护程序httpd如何运行的技术描写;srm.conf是服务器的资源映照文件,告

即使使用了BindAddress参数,使得服务器只回应对1个IP地址的要求,但是通过使用扩大的Listen参数,依然可让HTTP守护进程回应对其他IP地址的要求。此时Listen参数的用法与上面的第2个例子相同。这类比较复杂的用法主要用于设置虚拟主机。尔后可以用 VirtualHost参数定义对不同IP的虚拟主机,但是这类用法是较早的HTTP 1.0标准中设置虚拟主机的方法,每针对1个虚拟主机就需要1个 IP地址,实际上用处其实不大。在HTTP 1.1中,增加了对单IP地址多域名的虚拟主机的支持,使得虚拟主机的设置具有更大的意义。

LoadModule mime_magic_module libexec/apache/mod_mime_magic.so

LoadModule info_module libexec/apache/mod_info.so

LoadModule speling_module libexec/apache/mod_speling.so

LoadModule proxy_module libexec/apache/libproxy.so

LoadModule rewrite_module libexec/apache/mod_rewrite.so

LoadModule anon_auth_module libexec/apache/mod_auth_anon.so

LoadModule db_auth_module libexec/apache/mod_auth_db.so

LoadModule digest_module libexec/apache/mod_digest.so

LoadModule cern_meta_module libexec/apache/mod_cern_meta.so

LoadModule expires_module libexec/apache/mod_expires.so

LoadModule headers_module libexec/apache/mod_headers.so

LoadModule usertrack_module libexec/apache/mod_usertrack.so

LoadModule unique_id_module libexec/apache/mod_unique_id.so

ClearModuleList

AddModule mod_env.c

AddModule mod_log_config.c

AddModule mod_mime_magic.c

AddModule mod_mime.c

AddModule mod_negotiation.c

AddModule mod_status.c

AddModule mod_info.c

AddModule mod_include.c

AddModule mod_autoindex.c

AddModule mod_dir.c

AddModule mod_cgi.c

AddModule mod_asis.c

AddModule mod_imap.c

AddModule mod_actions.c

AddModule mod_speling.c

AddModule mod_userdir.c

AddModule mod_proxy.c

AddModule mod_alias.c

AddModule mod_rewrite.c

AddModule mod_access.c

AddModule mod_auth.c

AddModule mod_auth_anon.c

AddModule mod_auth_db.c

AddModule mod_digest.c

AddModule mod_cern_meta.c

AddModule mod_expires.c

AddModule mod_headers.c

AddModule mod_usertrack.c

AddModule mod_unique_id.c

AddModule mod_so.c

AddModule mod_setenvif.c

Apache服务器的1个重要特性就是其模块化的结构,这不但表现为其能在编译时能通过新的模块加进新的功能,还表现为其模块可以动态加载进http服务程序中,而没必要载进不需要的模块。使用Apache的动态加载模块只需要设置好Load Module和AddModule参数便可以够了,这类特性就是Apache的 DSO(Dynamic Shared Object)特性,但是要想充分使用DSO特性依然不是1个简单的事情,不适当的改动这里的设置便可能造成服务器不能正常启动。因此假设不是要增加或减少服务器提供的功能,就不要改动这里的设置。

上1页 1 2 3 4 5 6 下1页

核心提示:Apache服务器的设置文件位于/usr/local/apache/conf/目录下,传统上使用3个配置文件httpd.conf,access.conf和srm.conf,来配置Apache服务器的行动。 httpd.conf提供了最基本的服务器配置,是对守护程序httpd如何运行的技术描写;srm.conf是服务器的资源映照文件,告

上面这些列表就显示了Linux下的缺省Apache服务器支持的模块,事实上很多模块是没有必要的,没必要要模块不会被载进内存。模块可以静态连接到pache 服务器内部,也能够这样动态加载,将Apache的特性都编译成动态可加载模块是该Port的做法,而不是Apache的缺省做法,这样就以牺牲很小的性能的同时,带来极大的灵活性。

因此动态可加载的能力还是对性能有稍微的影响,因此可以重新编译Apache,将自己所需要的功能编译进Apache 服务器内部,可让系统显得更加干净,效率也有稍微的进步。通常仅仅为了这1个目的就重新编译Apache是没有必要的,假设需要增加其他特性而重新编译Apache,无妨在增加其他模块的同时将所有的模块都静态连接进Apache 服务器。有的使用者更喜欢动态加载模块,那末也无妨全部都使用动态加载模块。

这些模块都被放置到/usr/local/apache/libexec/目录下, 每个模块对应Apache服务器的1个特性。具体解释每个模块的功能需要相当多的篇幅,其中比较重要的特性将在后面相应的地方中进行解释,而具体每个模块的功能及用法就需要查看Apache的文档。

#ExtendedStatus On

Apache服务器可以通过特殊的HTTP要求,来报告本身的运行状态,打开这个ExtendedStatus 参数可让服务器报告更全面的运行状态信息。

上1页 1 2 3 4 5 6 唐山网站建设www.fw8.net
TAG:服务器,进程,参数,文件,模块
评论加载中...
内容:
评论者: 验证码: