技术改变世界 阅读塑造人生! - shaogx.com

This string was altered by TechBlog\Plugins\Example.; This is an example to show the potential of an offcanvas layout pattern in Bootstrap. Try some responsive-range viewport sizes to see it in action.

apache做负载均衡器 配置

将Apache作为LoadBalance前置机分别有三种不同的部署方式,分别是:1 )轮询均衡策略的配置进入Apache的conf目录,打开httpd.conf文件,在文件的末尾加入:ProxyPass / balancer://proxy/         #注意这里以"/"结尾<Proxy balancer://proxy>       BalancerMember http://192.168.6.37:6888/... 全文

apache做负载均衡器 配置   Apache 负载均衡

apache配置文件详解

    ServerRoot “/usr/local“        ServerRoot用于指定守护进程httpd的运行目录,httpd在启动之后将自动将进程的当前目录改变为这个目录,因此如果设置文件中指定的文件或目录是相对路径,那么真实路径就位于这个ServerR oot定义的路径之下。      ScoreBoardFile /var/run/httpd.scoreboard        httpd使用ScoreBoardFile来维护进程的内部数据,因此通常不需要改变这个参数,除非管理员想在一台计算机上运行几个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一个文件来保存所有的设置选项。      PidFile /var/run/httpd.pid        PidFile指定的文件将记录httpd守护进程的进程号,由于httpd能自动复制其自身,因此系统中有多个httpd进程,但只有一个进程为最初启动的进程,它为其他进程的父进程,对这个进程发送信号将影响所有的httpd进程。PidFILE定义的文件中就记录httpd父进程的进程号。      Timeout 300        Timeout定义客户程序和服务器连接的超时间隔,超过这个时间间隔(秒)后服务器将断开与客户机的连接。      KeepAlive On        在HTTP 1.0中,一次连接只能作传输一次HTTP请求,而KeepAlive参数用于支持HTTP 1.1版本的一次连接、多次传输功能,这样就可以在一次连接中传递多个HTTP请求。虽然只有较新的浏览器才支持这个功能,但还是打开使用这个选项。      MaxKeepAliveRequests 100        MaxKeepAliveRequests为一次连接可以进行的HTTP请求的最大请求次数。将其值设为0将支持在一次连接内进行无限次的传输请求。事实上没有客户程序在一次连接中请求太多的页面,通常达不到这个上限就完成连接了。      KeepAliveTimeout 15        KeepAliveTimeout测试一次连接中的多次请求传输之间的时间,如果服务器已经完成了一次请求,但一直没有接收到客户程序的下一次请求,在间隔超过了这个参数设置的值之后,服务器就断开连接。      ThreadsPerChild 50    设置服务器使用进程的数目。    # 这是以服务器的响应速度为准的, 数目太大则会变慢       MaxRequestsPerChild 30        使用子进程的方式提供服务的Web服务,常用的方式是一个子进程为一次连接服务,这样造成的问题就是每次连接都需要生成、退出子进程的系统操作,使得这些额外的处理过程占据了计算机的大量处理能力。因此最好的方式是一个子进程可以为多次连接请求服务,这样就不需要这些生成、退出进程的系统消耗,Apache就采用了这样的方式,一次连接结束后,子进程并不退出,而是停留在系统中等待下一次服务请求,这样就极大的提高了性能。        但由于在处理过程中子进程要不断的申请和释放内存,次数多了就会造成一些内存垃圾,就会影响系统的稳定性,并且影响系统资源的有效利用。因此在一个副本处理过一定次数的请求之后,就可以让这个子进程副本退出,再从原始的htt pd进程中重新复制一个干净的副本,这样就能提高系统的稳定性。这样,每个子进程处理服务请求次数由MaxRe questPerChild定义。 缺省的设置值为30,这个值对于具备高稳定性特点的FreeBSD系统来讲是过于保守的设置,可以设置为1000甚至更高,设置为0支持每个副本进行无限次的服务处理。   为了安全,设置为零       #Listen 3000   #Listen 12.34.56.78:80   #BindAddress *        Listen参数可以指定服务器除了监视标准的80端口之外,还监视其他端口的HTTP请求。由于FreeBSD系统可以同时拥有多个IP地址,因此也可以指定服务器只听取对某个BindAddress< /B>的IP地址的HTTP请求。如果没有配置这一项,则服务器会回应对所有IP的请求。        即使使用了BindAddress参数,使得服务器只回应对一个IP地址的请求,但是通过使用扩展的Listen参数,仍然可以让HTTP守护进程回应对其他IP地址的请求。此时Listen参数的用法与上面的第二个例子相同。这种比较复杂的用法主要用于设置虚拟主机。此后可以用VirtualHost参数定义对不同IP的虚拟主机,然而这种用法是较早的HTTP 1.0标准中设置虚拟主机的方法,每针对一个虚拟主机就需要一个IP地址,实际上用处并不大。在HTTP 1.1中,增加了对单IP地址多域名的虚拟主机的支持,使得虚拟主机的设置具备更大的意义。      #ExtendedStatus On        Apache服务器可以通过特殊的HTTP请求,来报告自身的运行状态,打开这个ExtendedStatus 参数可以让服务器报告更全面的运行状态信息            ---------------------------------------------------------------------------------      ServerAdmin you@your.address        配置文件中应该改变的也许只有ServerAdmin, 这一项用于配置WWW服务器的管理员的email地址,这将在HTTP服务出现错误的条件下返回给浏览器,以便让Web使用者和管理员联系,报告错误。习惯上使用服务器上的webmaster作为WWW服务器的管理员,通过邮件服务器的别名机制,将发送到webmaster 的电子邮件发送给真正的Web管理员。      ServerName localhost        缺省情况下,并不需要指定这个ServerName参数,服务器将自动通过名字解析过程来获得自己的名字,但如果服务器的名字解析有问题(通常为反向解析不正确),或者没有正式的DNS名字,也可以在这里指定I P地址。当ServerName设置不正确的时候,服务器不能正常启动。        通常一个Web服务器可以具有多个名字,客户浏览器可以使用所有这些名字或IP地址来访问这台服务器,但在没有定义虚拟主机的情况下,服务器总是以自己的正式名字回应浏览器。ServerName就定义了Web服务器自己承认的正式名字,例如一台服务器名字(在DNS中定义了A类型)为freebsd.exmaple.org.cn,同时为了方便记忆还定义了一个别名(CNAME记录)为www.exmaple.org.cn,那么Apache自动解析得到的名字就为freebsd.example.org.cn,这样不管客户浏览器使用哪个名字发送请求,服务器总是告诉客户程序自己为freebsd.example.org.cn。虽然这一般并不会造成什么问题,但是考虑到某一天服务器可能迁移到其他计算机上,而只想通过更改DNS中的www别名配置就完成迁移任务,所以不想让客户在其书签中使用 freebsd记录下这个服务器的地址,就必须使用ServerName来重新指定服务器的正式名字。      DocumentRoot “/usr/local/www/data“        DocumentRoot定义这个服务器对外发布的超文本文档存放的路径,客户程序请求的UR L就被映射为这个目录下的网页文件。这个目录下的子目录,以及使用符号连接指出的文件和目录都能被浏览器访问,只是要在URL上使用同样的相对目录名。        注意,符号连接虽然逻辑上位于根文档目录之下,但实际上可以位于计算机上的任意目录中,因此可以使客户程序能访问那些根文档目录之外的目录,这在增加了灵活性的同时但减少了安全性。Apache在目录的访问控制中提供了FollowSymLinks选项来打开或关闭支持符号连接的特性。      <Directory />    Options FollowSymLinks    AllowOverride None   </Directory>        Apache服务器可以针对目录进行文档的访问控制,然而访问控制可以通过两种方式来实现,一个是在设置文件 httpd.conf(或access.conf)中针对每个目录进行设置,另一个方法是在每个目录下设置访问控制文件,通常访问控制文件名字为.htaccess。虽然使用这两个方式都能用于控制浏览器的访问,然而使用配置文件的方法要求每次改动后重新启动httpd守护进程,比较不灵活,因此主要用于配置服务器系统的整体安全控制策略,而使用每个目录下的.htaccess文件设置具体目录的访问控制更为灵活方便。         <Directory “H:/web001“>   Directory语句就是用来定义目录的访问限制的,这里可以看出它的标准语法,为一个目录定义访问限制。上例的这个设置是针对系统的根目录进行的,设置了允许符号连接的选项FollowSymLinks ,以及使用AllowOverride None表示不允许这个目录下的访问控制文件来改变这里进行的配置,这也意味着不用查看这个目录下的相应访问控制文件。        由于Apache对一个目录的访问控制设置是能够被下一级目录继承的,因此对根目录的设置将影响到它的下级目录。注意由于AllowOverride None的设置,使得Apache服务器不需要查看根目录下的访问控制文件,也不需要查看以下各级目录下的访问控制文件,直至httpd.conf(或access.conf )中为某个目录指定了允许Alloworride,即允许查看访问控制文件。由于Apache对目录访问控制是采用的继承方式,如果从根目录就允许查看访问控制文件,那么Apache就必须一级一级的查看访问控制文件,对系统性能会造成影响。而缺省关闭了根目录的这个特性,就使得Apache从httpd.conf中具体指定的目录向下搜寻,减少了搜寻的级数,增加了系统性能。因此对于系统根目录设置AllowOverride None不但对于系统安全有帮助,也有益于系统性能。      Options Indexes FollowSymLinks    AllowOverride None    Order allow,deny    Allow from all   </Directory>         这里定义的是系统对外发布文档的目录的访问设置,设置不同的AllowOverride选项,以定义配置文件中的目录设置和用户目录下的安全控制文件的关系,而Options选项用于定义该目录的特性。        配置文件和每个目录下的访问控制文件都可以设置访问限制,设置文件是由管理员设置的,而每个目录下的访问控制文件是由目录的属主设置的,因此管理员可以规定目录的属主是否能覆盖系统在设置文件中的设置,这就需要使用 AllowOverride参数进行设置,通常可以设置的值为:      AllowOverride的设置 对每个目录访问控制文件作用的影响    All 缺省值,使访问控制文件可以覆盖系统配置    None 服务器忽略访问控制文件的设置    Options 允许访问控制文件中可以使用Options参数定义目录的选项    FileInfo 允许访问控制文件中可以使用AddType等参数设置    AuthConfig 允许访问控制文件使用AuthName,AuthType等针对每个用户的认证机制,这使目录属主能用口令和用户名来保护目录    Limit 允许对访问目录的客户机的IP地址和名字进行限制          每个目录具备一定属性,可以使用Options来控制这个目录下的一些访问特性设置,以下为常用的特性选项:      Options设置 服务器特性设置    All 所有的目录特性都有效,这是缺省状态    None 所有的目录特性都无效    FollowSymLinks 允许使用符号连接,这将使浏览器有可能访问文档根目录(DocumentRoot)之外的文档    SymLinksIfOwnerMatch 只有符号连接的目的与符号连接本身为同一用户所拥有时,才允许访问,这个设置将增加一些安全性    ExecCGI 允许这个目录下可以执行CGI程序    Indexes 允许浏览器可以生成这个目录下所有文件的索引,使得在这个目录下没有index.html(或其他索引文件)时,能向浏览器发送这个目录下的文件列表         此外,上例中还使用了Order、Allow、Deny等参数,这是Limit语句中用来根据浏览器的域名和 IP地址来控制访问的一种方式。其中Order定义处理Allow和Deny的顺序,而Allow、Deny则针对名字或IP进行访问控制设置,上例使用allow from all,表示允许所有的客户机访问这个目录,而不进行任何限制。         UserDir public_html (Win32=“My Documents/My Website“)        当在一台FreeBSD上运行Apache服务器时,这台计算机上的所有用户都可以有自己的网页路径,形如 http://freebsd.example.org.cn/~user,使用波浪符号加上用户名就可以映射到用户自己的网页目录上。映射目录为用户个人主目录下的一个子目录,其名字就用UseDir这个参数进行定义,缺省为public_html。如果不想为正式的用户提供网页服务,使用DISABLED作UserDir的参数即可。      #   # AllowOverride FileInfo AuthConfig Limit   # Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec   #    # Order allow,deny   # Allow from all   #    #    # Order deny,allow   # Deny from all   #    #         这里可以看到Directory的另一个用法,即可以通过简单的模式匹配方法,针对分布在不同目录下的子目录定义访问控制权限。这样设置就需要Apache服务器对每个路径进行额外的处理,因此就会降低服务器的性能,所以缺省情况并没有打开这种访问限制。        这里可以看到另外一个语句Limit,Limit语句就是用来针对具体的请求方法来设定访问控制的,其中可以使用GET、POST等各种服务器支持的请求方法做Limit的参数,来设定对不同请求方法的访问限制。一般可以打开对GET、POST、HEAD三种请求方法,而屏蔽其他的请求方法,以增加安全性。Limit语句中,可以使用Order 、Allow、Deny,Allow和Deny中可以使用匹配的方法针对域名和IP进行限制,只是对于域名是从后向前匹配,对于IP地址则从前向后匹配。      DirectoryIndex index.html        很多情况下,URL中并没有指定文档的名字,而只是给出了一个目录名。那么Apache服务器就自动返回这个目录下由DirectoryIndex定义的文件,当然可以指定多个文件名字,系统会这个目录下顺序搜索。当所有由DirectoryIndex指定的文件都不存在时,Apache服务器可以根据系统设置,生成这个目录下的所有文件列表,提供用户选择。此时该目录的访问控制选项中的Indexes选项(Options Indexes )必须打开,以使得服务器能够生成目录列表,否则Apache将拒绝访问。      AccessFileName .htaccess        AccessFileName定义每个目录下的访问控制文件的文件名,缺省为.htaccess ,可以通过更改这个文件,来改变不同目录的访问控制限制。       Order allow,deny    Deny from all         除了可以针对目录进行访问控制之外,还可以根据文件来设置访问控制,这就是File语句的任务。使用File 语句,不管文件处于哪个目录,只要名字匹配,就必须接受相应的访问控制。这个语句对于系统安全比较重要,例如上例将屏蔽所有的使用者不能访问.htaccess文件,这样就避免.htaccess中的关键安全信息不至于被客户获取。      TypesConfig /usr/local/etc/apache/mime.types        TypeConfig用于设置保存有不同的MIME类型数据的文件名,在FreeBSD下缺省设置为/usr/local/etc/apache/mime.types。      DefaultType text/plain        如果Web服务器不能决定一个文档的缺省类型,这通常表示文档使用了非标准的后缀,那么服务器就使用 DefaultType定义的MIME类型将文档发送给客户浏览器。这里的设置为text/plain,这样设置的问题是,如果服务器不能判断出文档的MIME,那么大部分情况下这个文档为一个二进制文档,但使用 text/plain格式发送回去,浏览器将在内部打开它而不会提示保存。因此建议将这个设置更改为 application/octet-stream,这样浏览器将提示用户进行保存。      MIMEMagicFile /usr/local/etc/apache/magic         除了从文件的后缀出发来判断文件的MIME类型之外,Apache还可以进一步分析文件的一些特征,来判断文件的真实MIME类型。这个功能是由mod_mime_magic模块实现的,它需要一个记录各种MIME类型特征的文件,以进行分析判断。上面的设置是一个条件语句,如果载入了这个模块,就必须指定相应的标志文件magic的位置。       HostnameLookups Off        通常连接时,服务器仅仅可以得到客户机的IP地址,如果要想获得客户机的主机名,以进行日志记录和提供给 CGI程序使用,就需要使用这个HostnameLookups选项,将其设置为On打开DNS反查功能。但是这将使服务器对每次客户请求都进行DNS查询,增加了系统开销,使得反应变慢,因此缺省设置为使用Off关闭此选项。关闭选项之后,服务器就不会获得客户机的主机名,而只能使用IP地址来记录客户。            ErrorLog /var/log/httpd-error.log   LogLevel warn   LogFormat “%h %l %u %t \“%r\“ %>s %b \“%{Referer}i\“ \“%{User-Agent}i\““ combined   LogFormat “%h %l %u %t \“%r\“ %>s %b“ common   LogFormat “%{Referer}i -> %U“ referer   LogFormat “%{User-agent}i“ agent   #CustomLog /var/log/httpd-access.log common   #CustomLog /var/log/httpd-referer.log referer   #CustomLog /var/log/httpd-agent.log agent   CustomLog /var/log/httpd-access.log combined         这里定义了系统日志的形式,对于服务器错误记录, 由ErrorLog、LogLevel 来定义不同的错误日志文件及其记录内容。         对于系统的访问日志,缺省使用CustomLog参数定义日志的位置,缺省使用combined 参数指定将所有的访问日志放在一个文件中,然而也可以将不同种类的访问日志放在不同的日志记录文件中,这是通过在 CustomLog中指定不同的记录类型来完成的。common表示普通的对单页面请求访问记录,referer表示每个页面的引用记录,可以看出一个页面中包含的请求数,agent表示对客户机的类型记录,显然可以将现有的combined 定义的设置行注释掉,并使用common、referer和agent作为CustomLog的参数,来为不同种类的日志分别指定日志记录文件。      显然,LogFormat是用于定义不同类型的日志进行记录时使用的格式, 这里使用了以%开头的宏定义,以记录不同的内容。        如果这些参数指定的文件使用的是相对路径,那么就是相对于ServerRoot的路径。      ServerSignature On        一些情况下,例如当客户请求的网页并不存在时,服务器将产生错误文档,缺省情况下由于打开了 ServerSignature选项,错误文档的最后一行将包含服务器的名字、Apache的版本等信息。有的管理员更倾向于不对外显示这些信息,就可以将这个参数设置为Off,或者设置为Email,最后一行将替换为对ServerAdmin 的Email提示。         Alias /icons/ “/usr/local/www/icons/“       Options Indexes MultiViews    AllowOverride None    Order allow,deny    Allow from all        Alias参数用于将URL与服务器文件系统中的真实位置进行直接映射,一般的文档将在DocumentRoot 中进行查询,然而使用Alias定义的路径将直接映射到相应目录下,而不再到DocumentRoot 下面进行查询。因此Alias可以用来映射一些公用文件的路径,例如保存了各种常用图标的icons路径。这样使得除了使用符号连接之外,文档根目录(DocumentRoot)外的目录也可以通过使用了Alias映射,提供给浏览器访问。      定义好映射的路径之后,应该需要使用Directory语句设置访问限制。      ScriptAlias /cgi-bin/ “/usr/local/www/cgi-bin/“       AllowOverride None    Options None    Order allow,deny    Allow from all         ScriptAlias也是用于URL路径的映射,但与Alias的不同在于,ScriptAlias是用于映射CGI程序的路径,这个路径下的文件都被定义为CGI程序,通过执行它们来获得结果,而非由服务器直接返回其内容。缺省情况下CGI程序使用cgi-bin目录作为虚拟路径。      # Redirect old-URI new-URL        Redirect参数是用来重写URL的,当浏览器访问服务器上的一个已经不存在的资源的时候,服务器返回给浏览器新的URL,告诉浏览器从该URL中获取资源。这主要用于原来存在于服务器上的文档,改变了位置之后,而又希望能使用老URL能访问到,以保持与以前的URL兼容。       IndexOptions FancyIndexing   AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip   AddIconByType (TXT,/icons/text.gif) text/*   AddIconByType (IMG,/icons/image2.gif) image/*   AddIconByType (SND,/icons/sound2.gif) audio/*   AddIconByType (VID,/icons/movie.gif) video/*   AddIcon /icons/binary.gif .bin .exe   AddIcon /icons/binhex.gif .hqx   AddIcon /icons/tar.gif .tar   AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv   AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip   AddIcon /icons/a.gif .ps .ai .eps   AddIcon /icons/layout.gif .html .shtml .htm .pdf   AddIcon /icons/text.gif .txt   AddIcon /icons/c.gif .c   AddIcon /icons/p.gif .pl .py   AddIcon /icons/f.gif .for   AddIcon /icons/dvi.gif .dvi   AddIcon /icons/uuencoded.gif .uu   AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl   AddIcon /icons/tex.gif .tex   AddIcon /icons/bomb.gif core   AddIcon /icons/back.gif ..   AddIcon /icons/hand.right.gif README   AddIcon /icons/folder.gif ^^DIRECTORY^^   AddIcon /icons/blank.gif ^^BLANKICON^^   DefaultIcon /icons/unknown.gif   #AddDescription “GZIP compressed document“ .gz   #AddDescription “tar archive“ .tar   #AddDescription “GZIP compressed tar archive“ .tgz   ReadmeName README   HeaderName HEADER   IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t         当一个HTTP请求的URL为一个目录的时候,服务器返回这个目录中的索引文件。但如果一个目录中不存在缺省的索引文件,并且该服务器又许可显示目录文件列表的时候,就会显示出这个目录中的文件列表,为了使得这个文件列表能具有可理解性,而不仅仅是一个简单的列表,就需要前面的这些设置参数。      如果使用了IndexOptions FancyIndexing选项,可以让服务器产生的目录列表中针对各种不同类型的文档引用各种图标。而哪种文件使用哪种图标,则使用下面的 AddIconByEncoding、AddIconByType以及AddIcon来定义,分别依据MIME的编码、类型以及文件的后缀来判断使用何种图标。如果不能确定文档使用的图标,就使用 DefaultIcon定义的缺省图标。        同样,使用AddDescription可以为不同类型的文档加入不同的描述。并且,服务器还在目录下,查询使用ReadmeName和HeaderName定义的文件(自动加上. html后缀,如果没有发现,再使用.txt后缀进行搜索),如果发现了这些文件,就在文件列表之前首先显示这些文件的内容,以使得普通目录列表具备更大的可理解性。            IndexIgnore让服务器在列出文件列表时忽略相应的文件, 这里使用模式配置的方式定义文件名。            AddEncoding x-compress Z   AddEncoding x-gzip gz       AddEncoding用于告诉一些使用压缩的MIME类型,这样可以让浏览器进行解压缩操作。      AddLanguage en .en   AddLanguage fr .fr   AddLanguage de .de   AddLanguage da .da   AddLanguage el .el   AddLanguage it .it   LanguagePriority en fr de          一个HTML文档可以同时具备多个语言的版本,如对于file1.html文档可以具备file1.html.en、file1.html.fr 等不同的版本,每个语言后缀必须使用AddLanguage进行定义。这样服务器可以针对不同国家的客户,通过与浏览器进行协商,发送不同的语言版本。而LanguagePriority 定义不同语言的优先级,以便在浏览器没有特殊要求时,按照顺序使用不同的语言版本回应对file1.html 的请求。这个国际化的能力实际的应用并不多。         AddDefaultCharset ISO-8859-1      浏览器选择的标准编码      简体中文网站改为:GB2312         #AddType application/x-httpd-php3 .phtml   #AddType application/x-httpd-php3-source .phps                AddType参数可以为特定后缀的文件指定MIME类型,这里的设置将覆盖mime.types中的设置。      #AddHandler cgi-script .cgi        AddHandler是用于指定非静态的处理类型,用于定义文档为一个非静态的文档类型,需要进行处理,再向浏览器返回处理结果。例如上面注释中的设置是将以.cgi结尾的文件设置为cgi-script类型,那么服务器将启动这个CGI程序以进行处理。如果需要在前面AliasScript定义的路径之外执行CGI程序,就需要使用这个参数进行设置,此后以.cgi结尾的文件将被当作CGI程序执行。        在配置文件、这个目录中的.htaccess以及其上级目录的.htaccess中必须允许执行CGI程序,这需要通过Options ExecCGI参数设定。      #AddType text/html .shtml   #AddHandler server-parsed .shtml         另外一种动态进行处理的类型为server-parsed,由服务器自身预先分析网页内的标记,将标记更改为正确的HTML标识。由于server-parsed需要对text/html类型的文档进行处理,因此首先定义了对应的.shtml为text/html类型。        然而要支持SSI,还要首先要在配置文件(或.htaccess)中使用Options Includes允许该目录下的文档可以为SSI类型,或使用Options IncludesNOExec让执行普通的SSI标志,但不执行其中引用的外部程序。        另一种指定server-parsed类型的方式为使用XBitBack设置选项,如果将XBitHack设置为On,服务器将检查所有text/html类型的文档(包括.html后缀的文档),如果发现文件属性具备执行位 “x“,则服务器就认为它是服务器分析文档,需要服务器进行处理。推荐使用AddHandler进行设置,而将XBitBack 设置为Off,因为使用XBitBack将对所有的HTML文档都执行额外的检查,降低了效率。      #AddHandler send-as-is asis   #AddHandler imap-file map   #AddHandler type-map var          上面被注释的AddHandler用于支持Apache服务器的asis、map和var处理能力。      # Action media/type /cgi-script/location   # Action handler-name /cgi-script/location         因为Apache内部提供的处理功能有限,因此可以使用Action为服务器定义外部程序作为可处理的动态文档类型,这些外部程序与标准CGI程序相同,都是对输入的数据处理之后,再输出不同MIME类型的结果。例如要定义一个对特殊后缀wri都先执行wri2txt进行处理操作,再返回结果的操作,可以使用:       Action windows-writer /bin/wri2txt    AddHandler windows-writer wri         更进一步,可以直接使用Action定义对某个MIME类型预先进行处理操作,这需要例子中第一种格式的Action 参数设置方式。这样设置方式就不再需要额外的AddHandler用来将处理操作与文件后缀联系起来,而是使用Action直接处理MIME类型的文件。但如果文档后缀没有正式的MIME类型,还需要先定义一个MIME类型。      #ErrorDocument 500 “The server made a boo boo.   #ErrorDocument 404 /missing.html   #ErrorDocument 404 /cgi-bin/missing_handler.pl   #ErrorDocument 402 http://some.other_server.com/subscription_info.html         如果客户请求的网页不存在,或者没有访问权限等情况发生时,服务器将产生一个错误代码,同时也将回应客户浏览器一个标识错误的网页。ErrorDocument就用于设置当出现哪个错误时应该回应客户浏览器那些内容,ErrorDocument的第一个参数为错误的序号,第二个参数为回应的数据,可以为简单的文本,本地网页,本地CGI程序,以及远程主机上的网页。      BrowserMatch “Mozilla/2“ nokeepalive   BrowserMatch “MSIE 4\.0b2;“ nokeepalive downgrade-1.0 force-response-1.0   BrowserMatch “RealPlayer 4\.0“ force-response-1.0   BrowserMatch “Java/1\.0“ force-response-1.0   BrowserMatch “JDK/1\.0“ force-response-1.0      BrowserMatch命令为特定的客户程序,设置特殊的参数,以保证对老版本浏览器的兼容性,并支持新浏览器的新特性。         #   #ProxyRequests On   #   #   # Order deny,allow   # Deny from all   # Allow from .your_domain.com   #   #ProxyVia On   #CacheRoot “/usr/local/www/proxy“   #CacheSize 5   #CacheGcInterval 4   #CacheMaxExpire 24   #CacheLastModifiedFactor 0.1   #CacheDefaultExpire 1   #NoCache a_domain.com another_domain.edu joes.garage_sale.com       #         Apache服务器本身就具备代理的功能,然而这要求加载入mod_proxy模块。这能使用IfModule语句进行判断,如果存在mod_proxy模块,就使用ProxyRequests打开代理支持。此后的Directory用于设置对Proxy功能的访问权限设置,以及用于设置缓冲的各个参数设置。               -------------------------------------------------------------------------------------      #NameVirtualHost 12.34.56.78:80   #NameVirtualHost 12.34.56.78   #   # ServerAdmin webmaster@host.some_domain.com   # DocumentRoot /www/docs/host.some_domain.com   # ServerName host.some_domain.com   # ErrorLog logs/host.some_domain.com-error_log   # CustomLog logs/host.some_domain.com-access_log common   #       #   #                缺省设置文件中的这些内容是用于设置命名基础的虚拟主机服务器时使用。其中NameVirtualHost 来指定虚拟主机使用的IP地址,这个IP地址将对应多个DNS名字,如果Apache使用了Listen 参数控制了多个端口,那么就可以在这里加上端口号以进一步进行区分对不同端口的不同连接请求。此后,使用 VirtualHost语句,使用NameVirtualHost指定的IP地址作参数,对每个名字都定义对应的虚拟主机设置。        虚拟主机是在一台Web服务器上,可以为多个单独域名提供Web服务,并且每个域名都完全独立,包括具有完全独立的文档目录结构及设置,这样域名之间完全独立,不但使用每个域名访问到的内容完全独立,并且使用另一个域名无法访问其他域名提供的网页内容。        虚拟主机的概念对于ISP来讲非常有用,因为虽然一个组织可以将自己的网页挂在具备其他域名的服务器上的下级往址上,但使用独立的域名和根网址更为正式,易为众人接受。传统上,必须自己设立一台服务器才能达到单独域名的目的,然而这需要维护一个单独的服务器,很多小单位缺乏足够的维护能力,更为合适的方式是租用别人维护的服务器。ISP也没有必要为一个机构提供一个单独的服务器,完全可以使用虚拟主机能力,使服务器为多个域名提供Web服务,而且不同的服务互不干扰,对外就表现为多个不同的服务器。        有两种设定虚拟主机的方式,一种是基于HTTP 1.0标准,需要一个具备多IP地址的服务器,再配置DNS 服务器,给每个IP地址以不同的域名,最后才能配置Apache的配置文件,使服务器对不同域名返回不同的Web文档。由于这需要使用额外的IP地址,对每个要提供服务的域名都要使用单独的IP地址,因此这种方式实现起来问题较多。        可以在一个网络界面上绑定多个IP地址,FreeBSD下需要使用ifconfig的alias参数来进行这个配置,但此时会影响网络性能。        HTTP 1.1标准在协议中规定了对浏览器和服务器通信时,服务器能够跟踪浏览器请求的是哪个主机名字。因此可以利用这个新特性,使用更轻松的方式设定虚拟主机。这种方式不需要额外的IP地址,但需要新版本的浏览器支持。这种方式已经成为建立虚拟主机的标准方式。        要建立非IP基础的虚拟主机,多个域名是不可少的配置,因为每个域名就对应一个要服务的虚拟主机。因此需要更改DNS服务器的配置,为服务器增加多个CNAME选项,如:      freebsd IN A 192.168.1.64   vhost1 IN CNAME freebsd   vhost2 IN CNAME freebsd                基本的设置选项都是为了freebsd主机设定的,如果要为vhost1和vhost2设定虚拟主机,就要使用VirtualHost语句定义不同的选项,在语句中可以使用配置文件前面中的大部分选项,而可以重新定义几乎所有的针对服务器的设置。      NameVirtualHost 192.168.1.64      DocumentRoot /usr/local/www/data   ServerName freebsd.example.org.cn         DocumentRoot /vhost1   ServerName vhost1.example.org.cn         DocumentRoot /vhost2   ServerName vhost2.example.org.cn               这里需要注意的是,VirtualHost的参数地址一定要和NameVirtualHost定义的地址相一致,必须保证所有的值严格一致,Apache服务器才承认这些定义是为这个IP地址定义的虚拟主机。        此外,定义过NameVirtualHost之后,那么对这个IP地址的访问都被区分不同的虚拟主机进行处理,而对其他IP地址的访问,例如127.0.0.1,才应用前面定义的缺省选项。         ----------------------------------------------------------------------------------------         NameVirtualHost www.xxx.org   (对于动态IP的另类方法:指定虚拟主机的IP,由于要将域名映射为IP,不能使用localhost,127.0.0.1,计算机名,等这样的地址,所以,可以再一次通过域名转换,将域名转换为IP,这样就不必每次更改IP了。)      #   # VirtualHost example:   # Almost any Apache directive may go into a VirtualHost container.   # The first VirtualHost section is used for requests without a known   # server name.   #   <VirtualHost 192.168.0.1>(虚拟主机IP)    ServerAdmin 111@xxx.com(第一个虚拟主机Email)    DocumentRoot H:/web001(第一个虚拟主机目录)    ServerName www.xxx.org(第一个虚拟主机域名)    ErrorLog logs/www.xxx.org-error.log(第一个虚拟主机错误日志)    CustomLog logs/www.xxx.org-access.log common(第一个虚拟主机数据)   </VirtualHost>      <VirtualHost 192.168.0.2>(虚拟主机IP)    ServerAdmin 111@xxx.com(第二个虚拟主机Email)    DocumentRoot H:/web002(第二个虚拟主机目录)    ServerName www.xxx2.org(第二个虚拟主机域名)    ErrorLog logs/www.xxx2.org-error.log(第二个虚拟主机错误日志)    CustomLog logs/www.xxx2.org-access.log common(第二个虚拟主机数据)   </VirtualHost>      以此类推,可以增加更多虚拟主机。  ... 全文

配置文件 apache

apache优化配置

apache优化配置###=========httpd.conf begin===================##Apache主配置文件##设置服务器的基础目录,默认为Apache安装目录ServerRoot "/usr/local/apache-2.2.6"##设置服务器监听的IP和端口Listen 80##设置管理员邮件地址##设置服务器用于辨识自己的主机名和端口号ServerName www.uenu.com:80###设置动态加载的DSO模块##如果需要提供基于文本文件的认证,加载此模块,否则注释掉LoadModule authn_file_module modules/mod_authn_file.so##如果需要提供基于DBM文件的认证,加载此模块,否则注释掉#LoadModule authn_dbm_module modules/mod_authn_dbm.so##如果需要提供匿名用户认证,加载此模块,否则注释掉#LoadModule authn_anon_module modules/mod_authn_anon.so##如果需要提供基于SQL数据库的认证,加载此模块,否则注释掉#LoadModule authn_dbd_module modules/mod_authn_dbd.so##如果需要在未正确配置认证模块的情况下简单拒绝一切认证信息,加载此模块,否则注释掉LoadModule authn_default_module modules/mod_authn_default.so##此模块提供基于主机名、IP地址、请求特征的访问控制,Allow、Deny指令需要,推荐加载。LoadModule authz_host_module modules/mod_authz_host.so##如果需要使用纯文本文件为组提供授权支持,加载此模块,否则注释掉#LoadModule authz_groupfile_module modules/mod_authz_groupfile.so##如果需要提供基于每个用户的授权支持,加载此模块,否则注释掉LoadModule authz_user_module modules/mod_authz_user.so##如果需要使用DBM文件为组提供授权支持,加载此模块,否则注释掉#LoadModule authz_dbm_module modules/mod_authz_dbm.so##如果需要基于文件的所有者进行授权,加载此模块,否则注释掉#LoadModule authz_owner_module modules/mod_authz_owner.so##如果需要在未正确配置授权支持模块的情况下简单拒绝一切授权请求,加载此模块,否则注释掉LoadModule authz_default_module modules/mod_authz_default.so##如果需要提供基本的HTTP认证,加载此模块,否则注释掉,此模块至少需要同时加载一个认证支持模块和一个授权支持模块LoadModule auth_basic_module modules/mod_auth_basic.so##如果需要提供HTTP MD5摘要认证,加载此模块,否则注释掉,此模块至少需要同时加载一个认证支持模块和一个授权支持模块#LoadModule auth_digest_module modules/mod_auth_digest.so##此模块提供文件描述符缓存支持,从而提高Apache性能,推荐加载,但请小心使用LoadModule file_cache_module modules/mod_file_cache.so##此模块提供基于URI键的内容动态缓存(内存或磁盘),从而提高Apache性能,必须与mod_disk_cache/mod_mem_cache同时使用,推荐加载LoadModule cache_module modules/mod_cache.so##此模块为mod_cache提供基于磁盘的缓存管理,推荐加载LoadModule disk_cache_module modules/mod_disk_cache.so##此模块为mod_cache提供基于内存的缓存管理,推荐加载LoadModule mem_cache_module modules/mod_mem_cache.so##如果需要管理SQL数据库连接,为需要数据库功能的模块提供支持,加载此模块,否则注释掉(推荐)#LoadModule dbd_module modules/mod_dbd.so##此模块将所有I/O操作转储到错误日志中,会导致在日志中写入及其海量的数据,只建议在发现问题并进行调试的时候使用#LoadModule dumpio_module modules/mod_dumpio.so##如果需要使用外部程序作为过滤器,加载此模块(不推荐),否则注释掉#LoadModule ext_filter_module modules/mod_ext_filter.so##如果需要实现服务端包含文档(SSI)处理,加载此模块(不推荐),否则注释掉#LoadModule include_module modules/mod_include.so##如果需要根据上下文实际情况对输出过滤器进行动态配置,加载此模块,否则注释掉LoadModule filter_module modules/mod_filter.so##如果需要服务器在将输出内容发送到客户端以前进行压缩以节约带宽,加载此模块(推荐),否则注释掉LoadModule deflate_module modules/mod_deflate.so##如果需要记录日志和定制日志文件格式,加载此模块(推荐),否则注释掉LoadModule log_config_module modules/mod_log_config.so##如果需要对每个请求的输入/输出字节数以及HTTP头进行日志记录,加载此模块,否则注释掉#LoadModule logio_module modules/mod_logio.so##如果允许Apache修改或清除传送到CGI脚本和SSI页面的环境变量,加载此模块,否则注释掉LoadModule env_module modules/mod_env.so##如果允许通过配置文件控制HTTP的"Expires:"和"Cache-Control:"头内容,加载此模块(推荐),否则注释掉LoadModule expires_module modules/mod_expires.so##如果允许通过配置文件控制任意的HTTP请求和应答头信息,加载此模块,否则注释掉LoadModule headers_module modules/mod_headers.so##如果需要实现RFC1413规定的ident查找,加载此模块(不推荐),否则注释掉#LoadModule ident_module modules/mod_ident.so##如果需要根据客户端请求头字段设置环境变量,加载此模块,否则注释掉LoadModule setenvif_module modules/mod_setenvif.so##此模块是mod_proxy的扩展,提供Apache JServ Protocol支持,只在必要时加载#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so##此模块是mod_proxy的扩展,提供负载均衡支持,只在必要时加载#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so##如果需要根据文件扩展名决定应答的行为(处理器/过滤器)和内容(MIME类型/语言/字符集/编码),加载此模块,否则注释掉LoadModule mime_module modules/mod_mime.so##如果允许Apache提供DAV协议支持,加载此模块,否则注释掉#LoadModule dav_module modules/mod_dav.so##此模块生成描述服务器状态的Web页面,只建议在追踪服务器性能和问题时加载#LoadModule status_module modules/mod_status.so##如果需要自动对目录中的内容生成列表(类似于"ls"或"dir"命令),加载此模块(会带来安全问题,不推荐),否则注释掉#LoadModule autoindex_module modules/mod_autoindex.so##如果需要服务器发送自己包含HTTP头内容的文件,加载此模块,否则注释掉#LoadModule asis_module modules/mod_asis.so##如果需要生成Apache配置情况的Web页面,加载此模块(会带来安全问题,不推荐),否则注释掉#LoadModule info_module modules/mod_info.so##如果需要在非线程型MPM(prefork)上提供对CGI脚本执行的支持,加载此模块,否则注释掉#LoadModule cgi_module modules/mod_cgi.so##此模块在线程型MPM(worker)上用一个外部CGI守护进程执行CGI脚本,如果正在多线程模式下使用CGI程序,推荐替换mod_cgi加载,否则注释掉#LoadModule cgid_module modules/mod_cgid.so##此模块为mod_dav访问服务器上的文件系统提供支持,如果加载mod_dav,则也应加载此模块,否则注释掉#LoadModule dav_fs_module modules/mod_dav_fs.so##如果需要提供大批量虚拟主机的动态配置支持,加载此模块,否则注释掉#LoadModule vhost_alias_module modules/mod_vhost_alias.so##如果需要提供内容协商支持(从几个有效文档中选择一个最匹配客户端要求的文档),加载此模块(推荐),否则注释掉LoadModule negotiation_module modules/mod_negotiation.so##如果需要指定目录索引文件以及为目录提供"尾斜杠"重定向,加载此模块(推荐),否则注释掉LoadModule dir_module modules/mod_dir.so##如果需要处理服务器端图像映射,加载此模块,否则注释掉#LoadModule imagemap_module modules/mod_imagemap.so##如果需要针对特定的媒体类型或请求方法执行CGI脚本,加载此模块,否则注释掉#LoadModule actions_module modules/mod_actions.so##如果希望服务器自动纠正URL中的拼写错误,加载此模块(推荐),否则注释掉LoadModule speling_module modules/mod_speling.so##如果允许在URL中通过"/~username"形式从用户自己的主目录中提供页面,加载此模块,否则注释掉#LoadModule userdir_module modules/mod_userdir.so##此模块提供从文件系统的不同部分到文档树的映射和URL重定向,推荐加载LoadModule alias_module modules/mod_alias.so##如果需要基于一定规则实时重写URL请求,加载此模块(推荐),否则注释掉LoadModule rewrite_module modules/mod_rewrite.so ##设置子进程的用户和组<IfModule !mpm_netware_module>User daemonGroup daemon</IfModule>##设置默认WEB文档根目录DocumentRoot "/usr/local/apache-2.2.6/htdocs"##设置WEB文档根目录的默认属性<Directory />Options FollowSymLinksAllowOverride NoneOrder deny,allowDeny from all</Directory>##设置DocumentRoot指定目录的属性<Directory "/usr/local/apache-2.2.6/htdocs">Options FollowSymLinksAllowOverride NoneOrder allow,denyAllow from all</Directory>##设置默认目录资源列表文件<IfModule dir_module>DirectoryIndex index.html</IfModule>##拒绝对.ht开头文件的访问,以保护.htaccess文件<FilesMatch "^\.ht">Order allow,denyDeny from allSatisfy All</FilesMatch>##指定错误日志文件ErrorLog logs/error_log##指定记录到错误日志的消息级别LogLevel warn<IfModule log_config_module>##定义访问日志的格式LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedLogFormat "%h %l %u %t \"%r\" %>s %b" common<IfModule logio_module>LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio</IfModule>##指定访问日志及使用的格式CustomLog logs/access_log combined</IfModule>##设定默认CGI脚本目录及别名<IfModule alias_module>ScriptAlias /cgi-bin/ "/usr/local/apache-2.2.6/cgi-bin/"</IfModule>##在以线程式MPM(worker)运行的Apache中设置用来与CGI守护进程通信的套接字文件名前缀<IfModule cgid_module>Scriptsock logs/cgisock</IfModule>##设定默认CGI脚本目录的属性<Directory "/usr/local/apache-2.2.6/cgi-bin">AllowOverride NoneOptions NoneOrder allow,denyAllow from all</Directory>##设定默认MIME内容类型DefaultType text/plain<IfModule mime_module>##指定MIME类型映射文件TypesConfig conf/mime.types##增加.Z .tgz的类型映射AddType application/x-compress .ZAddType application/x-gzip .gz .tgz</IfModule>##启用内存映射EnableMMAP on##使用操作系统内核的sendfile支持来将文件发送到客户端EnableSendfile on##指定多路处理模块(MPM)配置文件并将其附加到主配置文件Include conf/extra/httpd-mpm.conf##指定多语言错误应答配置文件并将其附加到主配置文件Include conf/extra/httpd-multilang-errordoc.conf##指定目录列表配置文件并将其附加到主配置文件#Include conf/extra/httpd-autoindex.conf##指定语言配置文件并将其附加到主配置文件Include conf/extra/httpd-languages.conf##指定用户主目录配置文件并将其附加到主配置文件#Include conf/extra/httpd-userdir.conf##指定用于服务器信息和状态显示的配置文件并将其附加到主配置文件#Include conf/extra/httpd-info.conf##指定提供Apache文档访问的配置文件并将其附加到配置文件#Include conf/extra/httpd-manual.conf##指定DAV配置文件并将其附加到主配置文件#Include conf/extra/httpd-dav.conf##指定与Apache服务自身相关的配置文件并将其附加到主配置文件Include conf/extra/httpd-default.conf##指定mod_deflate压缩模块配置文件并将其附加到主配置文件Include conf/extra/httpd-deflate.conf##指定mod_expires模块配置文件并将其附加到主配置文件Include conf/extra/httpd-expires.conf##指定虚拟主机配置文件并将其附加到主配置文件#Include conf/extra/httpd-vhosts.conf##指定SSL配置文件并将其附加到主配置文件Include conf/extra/httpd-ssl.conf##SSL默认配置<IfModule ssl_module>SSLRandomSeed startup builtinSSLRandomSeed connect builtin</IfModule>###==========httpd.conf end=================== 4.3.3 配置多路处理模块(MPM)编辑多路处理模块配置文件:vi /usr/local/apache-2.2.6/conf/extra/httpd-mpm.conf 如果使用prefork多路处理模块,按下面的提示修改:###=============httpd-mpm.conf prefork begin===================##设置prefork多路处理模块<IfModule mpm_prefork_module>StartServers 5MinSpareServers 5MaxSpareServers 10ServerLimit    4000MaxClients 4000MaxRequestsPerChild 0</IfModule>###=============httpd-mpm.conf prefork end===================   指令说明:  StartServers:设置服务器启动时建立的子进程数量。因为子进程数量动态的取决于负载的轻重,所有一般没有必要调整这个参数。  MinSpareServers:设置空闲子进程的最小数量。所谓空闲子进程是指没有正在处理请求的子进程。如果当前空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。只有在非常繁忙机器上才需要调整这个参数。将此参数设的太大通常是一个坏主意。MaxSpareServers:设置空闲子进程的最大数量。如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。只有在非常繁忙机器上才需要调整这个参数。将此参数设的太大通常是一个坏主意。如果你将该指令的值设置为比MinSpareServers小,Apache将会自动将其修改成"MinSpareServers+1"。ServerLimit:服务器允许配置的进程数上限。只有在你需要将MaxClients设置成高于默认值256的时候才需要使用。要将此指令的值保持和MaxClients一样。修改此指令的值必须完全停止服务后再启动才能生效,以restart方式重启动将不会生效。  MaxClients:用于伺服客户端请求的最大请求数量(最大子进程数),任何超过MaxClients限制的请求都将进入等候队列。默认值是256,如果要提高这个值必须同时提高ServerLimit的值。笔者建议将初始值设为(以Mb为单位的最大物理内存/2),然后根据负载情况进行动态调整。比如一台4G内存的机器,那么初始值就是4000/2=2000。MaxRequestsPerChild:设置每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为"0",子进程将永远不会结束。将MaxRequestsPerChild设置成非零值有两个好处:可以防止(偶然的)内存泄漏无限进行而耗尽内存;给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。如果设置为非零值,笔者建议设为10000-30000之间的一个值。公式:   MaxClients<=ServerLimit  如果使用worker多路处理模块,按下面的提示修改:###=============httpd-mpm.conf worker begin===================##设置worker多路处理模块<IfModule mpm_worker_module>StartServers 5ServerLimit 20ThreadLimit 200MaxClients 4000MinSpareThreads 25MaxSpareThreads 250ThreadsPerChild 200MaxRequestsPerChild 0</IfModule>###=============httpd-mpm.conf worker end===================指令说明:StartServers:设置服务器启动时建立的子进程数量。因为子进程数量动态的取决于负载的轻重,所有一般没有必要调整这个参数。ServerLimit:服务器允许配置的进程数上限。只有在你需要将MaxClients和ThreadsPerChild设置成需要超过默认值16个子进程的时候才需要使用这个指令。不要将该指令的值设置的比MaxClients 和ThreadsPerChild需要的子进程数量高。修改此指令的值必须完全停止服务后再启动才能生效,以restart方式重启动将不会生效。ThreadLimit: 设置每个子进程可配置的线程数ThreadsPerChild上限,该指令的值应当和ThreadsPerChild可能达到的最大值保持一致。修改此指令的值必须完全停止服务后再启动才能生效,以restart方式重启动将不会生效。MaxClients:用于伺服客户端请求的最大接入请求数量(最大线程数)。任何超过MaxClients限制的请求都将进入等候队列。默认值是"400",16 (ServerLimit)乘以25(ThreadsPerChild)的结果。因此要增加MaxClients的时候,你必须同时增加 ServerLimit的值。笔者建议将初始值设为(以Mb为单位的最大物理内存/2),然后根据负载情况进行动态调整。比如一台4G内存的机器,那么初始值就是4000/2=2000。MinSpareThreads:最小空闲线程数,默认值是"75"。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太少,子进程将产生新的空闲线程。MaxSpareThreads:设置最大空闲线程数。默认值是"250"。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太多,子进程将杀死多余的空闲线程。MaxSpareThreads的取值范围是有限制的。Apache将按照如下限制自动修正你设置的值:worker要求其大于等于 MinSpareThreads加上ThreadsPerChild的和。 ThreadsPerChild:每个子进程建立的线程数。默认值是25。子进程在启动时建立这些线程后就不再建立新的线程了。每个子进程所拥有的所有线程的总数要足够大,以便可以处理可能的请求高峰。MaxRequestsPerChild:设置每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为"0",子进程将永远不会结束。将MaxRequestsPerChild设置成非零值有两个好处:可以防止(偶然的)内存泄漏无限进行而耗尽内存;给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。如果设置为非零值,笔者建议设为10000-30000之间的一个值。公式:ThreadLimit >= ThreadsPerChildMaxClients <= ServerLimit * ThreadsPerChild 必须是ThreadsPerChild的倍数MaxSpareThreads >= MinSpareThreads+ThreadsPerChild 4.3.4 配置Apache服务器默认设置编辑Apache服务器默认设置文件:vi /usr/local/apache-2.2.6/conf/extra/httpd-default.conf 按下面的提示修改:###=============httpd-default.conf begin===================##Apache默认设置文件Timeout 120KeepAlive OffMaxKeepAliveRequests 100KeepAliveTimeout 5UseCanonicalName OffAccessFileName .htaccessServerTokens ProdServerSignature OffHostnameLookups Off###=============httpd-default.conf end====================指令说明:  Timeout:设置服务器在断定请求失败前等待的秒数。默认值300。KeepAlive:设置是否启用HTTP持久链接,On 代表打开,Off 代表关闭。如果用于同一页面包含大量静态文件的应用,设置为On,以提高性能;如果用于主要为动态页面的应用,设置为Off,以节约内存资源;如果服务器前跑有squid或者其它七层设备,设置为On。MaxKeepAliveRequests:限制当启用KeepAlive时,每个连接允许的请求数量。如果将此值设为"0",将不限制请求的数目。笔者建议将此值设为100-500之间的一个值,以确保最优的服务器性能。  KeepAliveTimeout:设置持久链接中服务器在两次请求之间等待的秒数。对于高负荷服务器来说,KeepAliveTimeout值较大会导致一些性能方面的问题:超时值越大,与空闲客户端保持连接的进程就越多。UseCanonicalName:配置服务器如何确定它自己的域名,可选值为On | Off | DNS。DNS用于为大量基于IP的虚拟主机支持那些古董级的不提供"Host:"头的浏览器使用。笔者建议设置为Off。AccessFileName:设置分布式配置文件的名字,默认为.htaccess。如果为某个目录启用了分布式配置文件功能,那么在向客户端返回其中的文档时,服务器将在这个文档所在的各级目录中查找此配置文件,因此会带来性能问题,笔者建议关闭分布式配置文件功能。ServerTokens:控制服务器回应给客户端的"Server:"应答头是否包含关于服务器操作系统类型和编译进的模块描述信息,同时还控制着ServerSignature指令的显示内容。可选值为Full | OS | Minor | Minimal | Major | Prod。笔者建议设置为显示最少信息的Prod。ServerSignature:配置服务器生成页面的页脚,可选值为On | Off | EMail。采用On会简单的增加一行关于服务器版本和正在伺服的虚拟主机的ServerName,而EMail设置会额外创建一个指向ServerAdmin的"mailto:"部分。建议使用默认值Off。HostnameLookups:设置是否启用对客户端IP的DNS查找,可选值为On | Off | Double。DNS查询会造成明显的时间消耗,建议设置为Off。###=========httpd.conf begin===================##Apache主配置文件##设置服务器的基础目录,默认为Apache安装目录ServerRoot "/usr/local/apache-2.2.6"##设置服务器监听的IP和端口Listen 80##设置管理员邮件地址##设置服务器用于辨识自己的主机名和端口号ServerName www.uenu.com:80###设置动态加载的DSO模块##如果需要提供基于文本文件的认证,加载此模块,否则注释掉LoadModule authn_file_module modules/mod_authn_file.so##如果需要提供基于DBM文件的认证,加载此模块,否则注释掉#LoadModule authn_dbm_module modules/mod_authn_dbm.so##如果需要提供匿名用户认证,加载此模块,否则注释掉#LoadModule authn_anon_module modules/mod_authn_anon.so##如果需要提供基于SQL数据库的认证,加载此模块,否则注释掉#LoadModule authn_dbd_module modules/mod_authn_dbd.so##如果需要在未正确配置认证模块的情况下简单拒绝一切认证信息,加载此模块,否则注释掉LoadModule authn_default_module modules/mod_authn_default.so##此模块提供基于主机名、IP地址、请求特征的访问控制,Allow、Deny指令需要,推荐加载。LoadModule authz_host_module modules/mod_authz_host.so##如果需要使用纯文本文件为组提供授权支持,加载此模块,否则注释掉#LoadModule authz_groupfile_module modules/mod_authz_groupfile.so##如果需要提供基于每个用户的授权支持,加载此模块,否则注释掉LoadModule authz_user_module modules/mod_authz_user.so##如果需要使用DBM文件为组提供授权支持,加载此模块,否则注释掉#LoadModule authz_dbm_module modules/mod_authz_dbm.so##如果需要基于文件的所有者进行授权,加载此模块,否则注释掉#LoadModule authz_owner_module modules/mod_authz_owner.so##如果需要在未正确配置授权支持模块的情况下简单拒绝一切授权请求,加载此模块,否则注释掉LoadModule authz_default_module modules/mod_authz_default.so##如果需要提供基本的HTTP认证,加载此模块,否则注释掉,此模块至少需要同时加载一个认证支持模块和一个授权支持模块LoadModule auth_basic_module modules/mod_auth_basic.so##如果需要提供HTTP MD5摘要认证,加载此模块,否则注释掉,此模块至少需要同时加载一个认证支持模块和一个授权支持模块#LoadModule auth_digest_module modules/mod_auth_digest.so##此模块提供文件描述符缓存支持,从而提高Apache性能,推荐加载,但请小心使用LoadModule file_cache_module modules/mod_file_cache.so##此模块提供基于URI键的内容动态缓存(内存或磁盘),从而提高Apache性能,必须与mod_disk_cache/mod_mem_cache同时使用,推荐加载LoadModule cache_module modules/mod_cache.so##此模块为mod_cache提供基于磁盘的缓存管理,推荐加载LoadModule disk_cache_module modules/mod_disk_cache.so##此模块为mod_cache提供基于内存的缓存管理,推荐加载LoadModule mem_cache_module modules/mod_mem_cache.so##如果需要管理SQL数据库连接,为需要数据库功能的模块提供支持,加载此模块,否则注释掉(推荐)#LoadModule dbd_module modules/mod_dbd.so##此模块将所有I/O操作转储到错误日志中,会导致在日志中写入及其海量的数据,只建议在发现问题并进行调试的时候使用#LoadModule dumpio_module modules/mod_dumpio.so##如果需要使用外部程序作为过滤器,加载此模块(不推荐),否则注释掉#LoadModule ext_filter_module modules/mod_ext_filter.so##如果需要实现服务端包含文档(SSI)处理,加载此模块(不推荐),否则注释掉#LoadModule include_module modules/mod_include.so##如果需要根据上下文实际情况对输出过滤器进行动态配置,加载此模块,否则注释掉LoadModule filter_module modules/mod_filter.so##如果需要服务器在将输出内容发送到客户端以前进行压缩以节约带宽,加载此模块(推荐),否则注释掉LoadModule deflate_module modules/mod_deflate.so##如果需要记录日志和定制日志文件格式,加载此模块(推荐),否则注释掉LoadModule log_config_module modules/mod_log_config.so##如果需要对每个请求的输入/输出字节数以及HTTP头进行日志记录,加载此模块,否则注释掉#LoadModule logio_module modules/mod_logio.so##如果允许Apache修改或清除传送到CGI脚本和SSI页面的环境变量,加载此模块,否则注释掉LoadModule env_module modules/mod_env.so##如果允许通过配置文件控制HTTP的"Expires:"和"Cache-Control:"头内容,加载此模块(推荐),否则注释掉LoadModule expires_module modules/mod_expires.so##如果允许通过配置文件控制任意的HTTP请求和应答头信息,加载此模块,否则注释掉LoadModule headers_module modules/mod_headers.so##如果需要实现RFC1413规定的ident查找,加载此模块(不推荐),否则注释掉#LoadModule ident_module modules/mod_ident.so##如果需要根据客户端请求头字段设置环境变量,加载此模块,否则注释掉LoadModule setenvif_module modules/mod_setenvif.so##此模块是mod_proxy的扩展,提供Apache JServ Protocol支持,只在必要时加载#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so##此模块是mod_proxy的扩展,提供负载均衡支持,只在必要时加载#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so##如果需要根据文件扩展名决定应答的行为(处理器/过滤器)和内容(MIME类型/语言/字符集/编码),加载此模块,否则注释掉LoadModule mime_module modules/mod_mime.so##如果允许Apache提供DAV协议支持,加载此模块,否则注释掉#LoadModule dav_module modules/mod_dav.so##此模块生成描述服务器状态的Web页面,只建议在追踪服务器性能和问题时加载#LoadModule status_module modules/mod_status.so##如果需要自动对目录中的内容生成列表(类似于"ls"或"dir"命令),加载此模块(会带来安全问题,不推荐),否则注释掉#LoadModule autoindex_module modules/mod_autoindex.so##如果需要服务器发送自己包含HTTP头内容的文件,加载此模块,否则注释掉#LoadModule asis_module modules/mod_asis.so##如果需要生成Apache配置情况的Web页面,加载此模块(会带来安全问题,不推荐),否则注释掉#LoadModule info_module modules/mod_info.so##如果需要在非线程型MPM(prefork)上提供对CGI脚本执行的支持,加载此模块,否则注释掉#LoadModule cgi_module modules/mod_cgi.so##此模块在线程型MPM(worker)上用一个外部CGI守护进程执行CGI脚本,如果正在多线程模式下使用CGI程序,推荐替换mod_cgi加载,否则注释掉#LoadModule cgid_module modules/mod_cgid.so##此模块为mod_dav访问服务器上的文件系统提供支持,如果加载mod_dav,则也应加载此模块,否则注释掉#LoadModule dav_fs_module modules/mod_dav_fs.so##如果需要提供大批量虚拟主机的动态配置支持,加载此模块,否则注释掉#LoadModule vhost_alias_module modules/mod_vhost_alias.so##如果需要提供内容协商支持(从几个有效文档中选择一个最匹配客户端要求的文档),加载此模块(推荐),否则注释掉LoadModule negotiation_module modules/mod_negotiation.so##如果需要指定目录索引文件以及为目录提供"尾斜杠"重定向,加载此模块(推荐),否则注释掉LoadModule dir_module modules/mod_dir.so##如果需要处理服务器端图像映射,加载此模块,否则注释掉#LoadModule imagemap_module modules/mod_imagemap.so##如果需要针对特定的媒体类型或请求方法执行CGI脚本,加载此模块,否则注释掉#LoadModule actions_module modules/mod_actions.so##如果希望服务器自动纠正URL中的拼写错误,加载此模块(推荐),否则注释掉LoadModule speling_module modules/mod_speling.so##如果允许在URL中通过"/~username"形式从用户自己的主目录中提供页面,加载此模块,否则注释掉#LoadModule userdir_module modules/mod_userdir.so##此模块提供从文件系统的不同部分到文档树的映射和URL重定向,推荐加载LoadModule alias_module modules/mod_alias.so##如果需要基于一定规则实时重写URL请求,加载此模块(推荐),否则注释掉LoadModule rewrite_module modules/mod_rewrite.so ##设置子进程的用户和组<IfModule !mpm_netware_module>User daemonGroup daemon</IfModule>##设置默认WEB文档根目录DocumentRoot "/usr/local/apache-2.2.6/htdocs"##设置WEB文档根目录的默认属性<Directory />Options FollowSymLinksAllowOverride NoneOrder deny,allowDeny from all</Directory>##设置DocumentRoot指定目录的属性<Directory "/usr/local/apache-2.2.6/htdocs">Options FollowSymLinksAllowOverride NoneOrder allow,denyAllow from all</Directory>##设置默认目录资源列表文件<IfModule dir_module>DirectoryIndex index.html</IfModule>##拒绝对.ht开头文件的访问,以保护.htaccess文件<FilesMatch "^\.ht">Order allow,denyDeny from allSatisfy All</FilesMatch>##指定错误日志文件ErrorLog logs/error_log##指定记录到错误日志的消息级别LogLevel warn<IfModule log_config_module>##定义访问日志的格式LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedLogFormat "%h %l %u %t \"%r\" %>s %b" common<IfModule logio_module>LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio</IfModule>##指定访问日志及使用的格式CustomLog logs/access_log combined</IfModule>##设定默认CGI脚本目录及别名<IfModule alias_module>ScriptAlias /cgi-bin/ "/usr/local/apache-2.2.6/cgi-bin/"</IfModule>##在以线程式MPM(worker)运行的Apache中设置用来与CGI守护进程通信的套接字文件名前缀<IfModule cgid_module>Scriptsock logs/cgisock</IfModule>##设定默认CGI脚本目录的属性<Directory "/usr/local/apache-2.2.6/cgi-bin">AllowOverride NoneOptions NoneOrder allow,denyAllow from all</Directory>##设定默认MIME内容类型DefaultType text/plain<IfModule mime_module>##指定MIME类型映射文件TypesConfig conf/mime.types##增加.Z .tgz的类型映射AddType application/x-compress .ZAddType application/x-gzip .gz .tgz</IfModule>##启用内存映射EnableMMAP on##使用操作系统内核的sendfile支持来将文件发送到客户端EnableSendfile on##指定多路处理模块(MPM)配置文件并将其附加到主配置文件Include conf/extra/httpd-mpm.conf##指定多语言错误应答配置文件并将其附加到主配置文件Include conf/extra/httpd-multilang-errordoc.conf##指定目录列表配置文件并将其附加到主配置文件#Include conf/extra/httpd-autoindex.conf##指定语言配置文件并将其附加到主配置文件Include conf/extra/httpd-languages.conf##指定用户主目录配置文件并将其附加到主配置文件#Include conf/extra/httpd-userdir.conf##指定用于服务器信息和状态显示的配置文件并将其附加到主配置文件#Include conf/extra/httpd-info.conf##指定提供Apache文档访问的配置文件并将其附加到配置文件#Include conf/extra/httpd-manual.conf##指定DAV配置文件并将其附加到主配置文件#Include conf/extra/httpd-dav.conf##指定与Apache服务自身相关的配置文件并将其附加到主配置文件Include conf/extra/httpd-default.conf##指定mod_deflate压缩模块配置文件并将其附加到主配置文件Include conf/extra/httpd-deflate.conf##指定mod_expires模块配置文件并将其附加到主配置文件Include conf/extra/httpd-expires.conf##指定虚拟主机配置文件并将其附加到主配置文件#Include conf/extra/httpd-vhosts.conf##指定SSL配置文件并将其附加到主配置文件Include conf/extra/httpd-ssl.conf##SSL默认配置<IfModule ssl_module>SSLRandomSeed startup builtinSSLRandomSeed connect builtin</IfModule>###==========httpd.conf end=================== 4.3.3 配置多路处理模块(MPM)编辑多路处理模块配置文件:vi /usr/local/apache-2.2.6/conf/extra/httpd-mpm.conf 如果使用prefork多路处理模块,按下面的提示修改:###=============httpd-mpm.conf prefork begin===================##设置prefork多路处理模块<IfModule mpm_prefork_module>StartServers 5MinSpareServers 5MaxSpareServers 10ServerLimit    4000MaxClients 4000MaxRequestsPerChild 0</IfModule>###=============httpd-mpm.conf prefork end===================   指令说明:  StartServers:设置服务器启动时建立的子进程数量。因为子进程数量动态的取决于负载的轻重,所有一般没有必要调整这个参数。  MinSpareServers:设置空闲子进程的最小数量。所谓空闲子进程是指没有正在处理请求的子进程。如果当前空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。只有在非常繁忙机器上才需要调整这个参数。将此参数设的太大通常是一个坏主意。MaxSpareServers:设置空闲子进程的最大数量。如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。只有在非常繁忙机器上才需要调整这个参数。将此参数设的太大通常是一个坏主意。如果你将该指令的值设置为比MinSpareServers小,Apache将会自动将其修改成"MinSpareServers+1"。ServerLimit:服务器允许配置的进程数上限。只有在你需要将MaxClients设置成高于默认值256的时候才需要使用。要将此指令的值保持和MaxClients一样。修改此指令的值必须完全停止服务后再启动才能生效,以restart方式重启动将不会生效。  MaxClients:用于伺服客户端请求的最大请求数量(最大子进程数),任何超过MaxClients限制的请求都将进入等候队列。默认值是256,如果要提高这个值必须同时提高ServerLimit的值。笔者建议将初始值设为(以Mb为单位的最大物理内存/2),然后根据负载情况进行动态调整。比如一台4G内存的机器,那么初始值就是4000/2=2000。MaxRequestsPerChild:设置每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为"0",子进程将永远不会结束。将MaxRequestsPerChild设置成非零值有两个好处:可以防止(偶然的)内存泄漏无限进行而耗尽内存;给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。如果设置为非零值,笔者建议设为10000-30000之间的一个值。公式:   MaxClients<=ServerLimit  如果使用worker多路处理模块,按下面的提示修改:###=============httpd-mpm.conf worker begin===================##设置worker多路处理模块<IfModule mpm_worker_module>StartServers 5ServerLimit 20ThreadLimit 200MaxClients 4000MinSpareThreads 25MaxSpareThreads 250ThreadsPerChild 200MaxRequestsPerChild 0</IfModule>###=============httpd-mpm.conf worker end===================指令说明:StartServers:设置服务器启动时建立的子进程数量。因为子进程数量动态的取决于负载的轻重,所有一般没有必要调整这个参数。ServerLimit:服务器允许配置的进程数上限。只有在你需要将MaxClients和ThreadsPerChild设置成需要超过默认值16个子进程的时候才需要使用这个指令。不要将该指令的值设置的比MaxClients 和ThreadsPerChild需要的子进程数量高。修改此指令的值必须完全停止服务后再启动才能生效,以restart方式重启动将不会生效。ThreadLimit: 设置每个子进程可配置的线程数ThreadsPerChild上限,该指令的值应当和ThreadsPerChild可能达到的最大值保持一致。修改此指令的值必须完全停止服务后再启动才能生效,以restart方式重启动将不会生效。MaxClients:用于伺服客户端请求的最大接入请求数量(最大线程数)。任何超过MaxClients限制的请求都将进入等候队列。默认值是"400",16 (ServerLimit)乘以25(ThreadsPerChild)的结果。因此要增加MaxClients的时候,你必须同时增加 ServerLimit的值。笔者建议将初始值设为(以Mb为单位的最大物理内存/2),然后根据负载情况进行动态调整。比如一台4G内存的机器,那么初始值就是4000/2=2000。MinSpareThreads:最小空闲线程数,默认值是"75"。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太少,子进程将产生新的空闲线程。MaxSpareThreads:设置最大空闲线程数。默认值是"250"。这个MPM将基于整个服务器监视空闲线程数。如果服务器中总的空闲线程数太多,子进程将杀死多余的空闲线程。MaxSpareThreads的取值范围是有限制的。Apache将按照如下限制自动修正你设置的值:worker要求其大于等于 MinSpareThreads加上ThreadsPerChild的和。 ThreadsPerChild:每个子进程建立的线程数。默认值是25。子进程在启动时建立这些线程后就不再建立新的线程了。每个子进程所拥有的所有线程的总数要足够大,以便可以处理可能的请求高峰。MaxRequestsPerChild:设置每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为"0",子进程将永远不会结束。将MaxRequestsPerChild设置成非零值有两个好处:可以防止(偶然的)内存泄漏无限进行而耗尽内存;给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。如果设置为非零值,笔者建议设为10000-30000之间的一个值。公式:ThreadLimit >= ThreadsPerChildMaxClients <= ServerLimit * ThreadsPerChild 必须是ThreadsPerChild的倍数MaxSpareThreads >= MinSpareThreads+ThreadsPerChild 4.3.4 配置Apache服务器默认设置编辑Apache服务器默认设置文件:vi /usr/local/apache-2.2.6/conf/extra/httpd-default.conf 按下面的提示修改:###=============httpd-default.conf begin===================##Apache默认设置文件Timeout 120KeepAlive OffMaxKeepAliveRequests 100KeepAliveTimeout 5UseCanonicalName OffAccessFileName .htaccessServerTokens ProdServerSignature OffHostnameLookups Off###=============httpd-default.conf end====================指令说明:  Timeout:设置服务器在断定请求失败前等待的秒数。默认值300。KeepAlive:设置是否启用HTTP持久链接,On 代表打开,Off 代表关闭。如果用于同一页面包含大量静态文件的应用,设置为On,以提高性能;如果用于主要为动态页面的应用,设置为Off,以节约内存资源;如果服务器前跑有squid或者其它七层设备,设置为On。MaxKeepAliveRequests:限制当启用KeepAlive时,每个连接允许的请求数量。如果将此值设为"0",将不限制请求的数目。笔者建议将此值设为100-500之间的一个值,以确保最优的服务器性能。  KeepAliveTimeout:设置持久链接中服务器在两次请求之间等待的秒数。对于高负荷服务器来说,KeepAliveTimeout值较大会导致一些性能方面的问题:超时值越大,与空闲客户端保持连接的进程就越多。UseCanonicalName:配置服务器如何确定它自己的域名,可选值为On | Off | DNS。DNS用于为大量基于IP的虚拟主机支持那些古董级的不提供"Host:"头的浏览器使用。笔者建议设置为Off。AccessFileName:设置分布式配置文件的名字,默认为.htaccess。如果为某个目录启用了分布式配置文件功能,那么在向客户端返回其中的文档时,服务器将在这个文档所在的各级目录中查找此配置文件,因此会带来性能问题,笔者建议关闭分布式配置文件功能。ServerTokens:控制服务器回应给客户端的"Server:"应答头是否包含关于服务器操作系统类型和编译进的模块描述信息,同时还控制着ServerSignature指令的显示内容。可选值为Full | OS | Minor | Minimal | Major | Prod。笔者建议设置为显示最少信息的Prod。ServerSignature:配置服务器生成页面的页脚,可选值为On | Off | EMail。采用On会简单的增加一行关于服务器版本和正在伺服的虚拟主机的ServerName,而EMail设置会额外创建一个指向ServerAdmin的"mailto:"部分。建议使用默认值Off。HostnameLookups:设置是否启用对客户端IP的DNS查找,可选值为On | Off | Double。DNS查询会造成明显的时间消耗,建议设置为Off。... 全文

apache 配置 优化

apache配置优化(六)

Apache--mod_expires缓存模块(这是apache调优的重要参数)mod_expires介绍:mod_expires允许图片在用户浏览器进行缓存,用户打开网站,第一次会把图片加载到本地,如果在有效期呢,用户在访问,就不需要去网站读取,只是加载在本地。好处一:提升用户体验由于用户读本地缓存了,所以访问页面就快了,也节省网站的带宽流量成本。好处二:节省网站带宽成本... 全文

apache配置优化

Ubuntu上Apache配置基础

配置文件官方发布的 Apache 的主配置文件是 httpd.conf, 服务器还会读取一个包含 MIME 文件类型的文件,其文件名由 TypesConfig 指令确定,默认值是mime.types 。Ubuntu/Debian 下的 Apache 的主配置文件是 /etc/apache2/apache2.conf, 包含 MIME 文件类型的文件是 /etc/mime.types 。此外,为了按逻辑分割配置,还可以用 Include 指令和通配符附加许多其他配置文件。Ubuntu 下附加了如下的配置文件:# 包含动态模块的配置:Include /etc/apache2/mods-enabled/*.load... 全文

Ubuntu上Apache配置基础

Apache配置注释(四)

apache主配置文件httpd.conf[root@eric6apache]# cat conf/httpd.conf|grep -v '.*#'|grep -v '^$'|nl1ServerRoot"/application/apache2.2.25" #apache的根目录,应只能root访问,一般不需要更改此项2Listen 80#apache监听的端口,默认为80,如果同时监听81端口,可以增加一行Listen81#3行-8行为apache的用户和组配置,即在运行时以次用户的身份启动服务和读取文件... 全文

配置 Apache 注释

apache配置文件详解

# 基于 NCSA 服务的配置文件。 # #这是Apache服务器主要配置文件。 #它包含服务器的影响服务器运行的配置指令。 #参见http://httpd.ache.org/doc-…>以取得关于这些指令的详细信息 # #不要只是简单的阅读这些指令信息而不去理解它。 #这里只是做了简单的说明,如果你没有参考在线文件,你就会被警告。 # #这些配置指令被分为下面三个部分: #1. 控制整个Apache服务器行为的部分(即全局环境变量) #2. 定义主要或者默认服务参数的指令,也为所有虚拟主机提供默认的设置参数 #3. 虚拟主机的设置参数 # #配置和日志文件名:如果你指定的文件名以“/”开始(win32下以“dirver:/”), #服务器将使用绝对路径,如果文件名不是以“/”开始的,那么它将把ServerRoot #的值附加在文件名的前面,例如,对“logs/foo.log”,如果ServerRoot的值 #为“/usr/local/apache2”,则该文件应为“/usr/local/apache2/logs/foo.log” # ##第一区:全局环境参数 # #这里设置的参数将影响整个Apache服务器的行为; #例如Apache能够处理的并发请求的数量等。 # #ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录。 # #注意!如果你想要将它指定为NFS或其它网络上的位置, #请一定要去阅读与LockFile有关的文档(可能在 #http://httpd.apache.org/do…> )。 #这将会使你自己也能解决很多问题。 # #路径的结尾不要添加斜线。 # ServerRoot “/usr/loacl/apache2″ # #串行访问的锁文件必须保存在本地磁盘上 # #LockFile logs/accept.lock #ScoreBoardFile:用来保存内部服务进程信息的文件。 #如果未指明(默认),记分板(scoreboard)将被保存在一个匿名的共享内存段中, #并且它不能被第三方软件所使用。 #如果指定了,要确保不能使用两个Apache使用同一个记分板文件, #这个记分板文件必须保存在本地磁盘上。 # #ScoreBoardFile logs/apache_runtime_status # #PidFile:记录服务器启动进程号的文件。 # PidFile logs/httpd.pid # #Timeout:接收和发送前超时秒数 # Timeout 300 # #KeepAlive:是否允许稳固的连接(每个连接有多个请求), #设为”Off”则停用。 # KeepAlive On # #MaxKeepAliveRequests:在稳固连接期间允许的最大请求数, #设为0表示无限制接入。 #我们推荐你将其设为一个较大的值,以便提高性能 MaxKeepAliveRequests 100 # #KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数 # KeepAliveTimeout 15 ## ##Server-Pool大小设定(针对MPM的) ## # prefork MPM # StartServers:启动时服务器启动的进程数 # MinSpareServers:保有的备用进程的最小数目 # MaxSpareServers:保有的备用进程的最大数目 # MaxClients:服务器允许启动的最大进程数 # MaxRequestsPerChild:一个服务进程允许的最大请求数 StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestPerChild 0 # worker MPM # StartServers:服务器启动时的服务进程数目 # MaxClients:允许同时连接的最大用户数目 # MinSpareThreads:保有的最小工作线程数目 # MaxSpareThreads:允许保有的最大工作线程数目 # ThreadsPerChild:每个服务进程中的工作线程常数 # MaxRequestsPerChild:服务进程中允许的最大请求数目 StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 # perchild MPM # NumServers:服务进程数量 # StartThreads:每个服务进程中的起始线程数量 # MinSpareThreads:保有的最小线程数量 # MaxSpareThreads:保有的最大线程数量 # MaxThreadsPerChild:每个服务进程允许的最大线程数 # MaxRequestsPerChild:每个服务进程允许连接的最大数量 NumServers 5 StartThreads 5 MinSpareThreads 5 MaxSpareThreads 10 MaxThreadsPerChild 20 MaxRequestsPerChild 0 # WinNT MPM # ThreadsPerChild:服务进程中工作线程常数 # MaxRequestsPerChild:服务进程允许的最大请求数 ThreadsPerChild 250 MaxRequestsPerChild 0 # BeOS MPM # StartThreads:服务器启动时启动的线程数 # MaxClients:可以启动的最大线程数(一个线程等于一个用户) # MaxRequestsPerThread:每个线程允许的最大请求数 StartThreads 10 MaxClients 50 MaxRequestsPerThread 10000 # NetWare MPM # ThreadStachSize:为每个工作线程分配的堆栈尺寸 # StartThreads:服务器启动时启动的线程数 # MinSpareThreads:用于处理实发请求的空闲线程数 # MaxSpareThreads:空闲线程的最大数量 # MaxThreads:在同一时间活动的最大线程数 # MaxRequestPerChild:一个线程服务请求的最大数量, # 推荐将其设置为0,以实现无限制的接入 ThreadStackSize 65536 StartThreads 250 MinSpareThreads 25 MaxSpareThreads 250 MaxThreads 1000 MaxRequestPerChild 0 # OS/2 MPM # StartServers:启动的服务进程数量 # MinSpareThreads:每个进程允许的最小空闲线程 # MaxSpareThreads:每个进程允许的最大空闲线程 # MaxRequestsPerChild:每个服务进程允许的最大连接数 StartServers 2 MinSpareThreads 5 MaxSpareThreads 10 MaxRequestsPerChild 0 # # Listen:允许你绑定Apache服务到指定的IP地址和端口上,以取代默认值 # 参见指令 # 使用如下命令使Apache只在指定的IP地址上监听, # 以防止它在IP地址0.0.0.0上监听 # # Listen 12.34.56.78:80 Listen 80 # # 动态共享支持(DSO) # # 为了能够使用那些以DSO模式编译的模块中的函数,你必须有相应的“LoadModule”行, # 因此,在这里包含了这些指令,以便能在使用它之前激活。 # 那些静态编译的模块不需要在这里列出 (即以“httpd -l”列出的模块) # # 示例: # LoadModule foo_module modules/mod_foo.so # # # ExtendedStatus:当调用“server-status”时,控制Apache是产生“全”状态 # 信息(ExtendedStatus On),还是产生基本信息(ExtendedStatus Off)。 # 默认为off # # ExtendedStatus On ### 第二区:“主”服务配置 # # 这一区建立被 “主” 服务器用的指令值,以回应那些不被 # 定义处理的任何请求。 # 这些数值也提供默认值给后面定义的容器。 # 如果中有定义,那么这里定义的指令值将被 # 中的定义所覆盖。 # # # 如果你想使httpd以另外的用户或组来运行,你必须在开始时以root方式启动 # 然后再将它切换为你想要使用的用户或组。 # # User/Group:运行httpd的用户和组 # 在SCO (ODT3)上使用“User nouser”和“Group nogroup” # 在HPUX上,你可能不能以nobody身份使用共享内存,建议创建一个www用户。 # 注意一些核心(kernel)在组ID大于60000时拒绝setgid(Group)或semctl(IPC_SET), #节在这些系统上不要使用“Group #-1”。 # User nobody Group #-1 # # ServerAdmin:你的邮件地址,当发生问题时Apache将向你发出邮件。 # 作为一个出错文档,这个地址显示在server-generated页上, # 例如:admin@your-domain.com # ServerAdmin kreny@sina.com # # ServerName指定Apache用于识别自身的名字和端口号。 # 通常这个值是自动指定的,但是我们推荐你显式的指定它以防止启动时出错 # # 如果你为你的主机指定了一个无效的DNS名,server-generated重定向将不能工作。 # 参见UseCanonicalName指令 # # 如果你的主机没有注册DNS名,在这里键入它的IP地址 # 无论如何,你必须使用它的IP地址来提供服务, # 这里使用一种容易理解的方式重定向服务 ServerName www.dalouis.com:80 # # UseCanonicalName:决定Apache如何构造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。 # 当设置为 “Off”时,Apache会使用用户端提供的主机名和端口号。 # 当设置为“On”,Apache会使用ServerName指令的值。 # UseCanonicalName Off # # DocumentRoot:你的文档的根目录。默认情况下,所有的请求从这个目录进行应答。 # 但是可以使用符号链接和别名来指向到其他的位置。 # DocumentRoot “/home/redhat/public_html” # # Apache可以存取的每个目录都可以配置存取权限(包括它的子目录)。 # # 首先,我们配置一个高限制的特征。 # 这将禁止访问文件系统所在的目录,并添加你希望允许访问的目录块。 # 如下所示 Order Deny,Allow Deny from all # # 注意从这里开始你一定要明确地允许哪些特别的特征能够被使用。 # – 所以,如果Apache没有象你所期待的那样工作的话, # 请检查你是否在下面明确的指定它可用。 # # # 这将改变到你设置的DocumentRoot # # # Options:这个指令的值可以是“None”,“All”,或者下列选项的任意组合: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # 注意,“MultiViews”必须被显式的指定,“Options All”不能为你提供这个特性。 # # 这个指令既复杂又重要,请参见 #“http://httpd.apache.org/do…〉酶嗟男畔ⅰ?lt;/a> # Options FollowSymLinks # # AllowOverride控制那些被放置在.htaccess文件中的指令。 # 它可以是“All”,“None”,或者下列指令的组合: # Options FileInfo AuthConfig Limit # AllowOverride None # # 控制谁可以获得服务。 # Order allow,deny Allow from all # # UserDir:指定在得到一个~user请求时将会添加到用户home目录后的目录名。 # UserDir public_html # 为防止在UserDir指令上的漏洞,对root用户设置 # 象“./”这样的UserDir是非常有用的。 # 如果你使用Apache 1.3或以上版本,我们强烈建议你 # 在你的服务器配置文件中包含下面的行 UserDir disabled root # # 下面是一个使用UserDir指令使一个站点的目录具有只读属性的示例: # # # AllowOverride FileInfo AuthConfig Limit Indexes # Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec # # Order allow,deny # Allow from all # # # Order deny,allow # Deny from all # # # # DirectoryIndex:定义请求是一个目录时,Apache向用户提供服务的文件名 # # index.html.var文件(一个类型映象文件)用于提供一个文档处理列表, # 出于同样的目的,也可以使用MultiViews选项,但是它会非常慢。 # DirectoryIndex index.php index.html index.html.var # # AccessFileName:在每个目录中查询为目录提供附加配置指令的文件的文件名。 # 参见AllowOverride指令。 # AccessFileName .htaccess # # 下面的行防止.htaccess和.htpasswd文件被Web客户查看。 # Order allow,deny Deny from all # # Typeconfig:定义在哪里查询mime.types文件。 # TypeConfig conf/mime.types # # DefaultType:定义当不能确定MIME类型时服务器提供的默认MIME类型。 # 如果你的服务主要包含text或HTML文档,“text/plain”是一个好的选择; # 如果大多是二进制文档,诸如软件或图像,你应使用 # “application/octer-stream”来防止浏览器象显示文本那样显示二进制文件。 # DefaultType text/plain # # mod_mime_magic允许服务器从自己定义自己类型的文件中使用不同的线索(hints), # 这个MIMEMagicFile指令定义hints定义所在的文件。 # MIMEMagicFile conf/magic # # HostnameLookups:指定记录用户端的名字还是IP地址,例如,本指令为on时 # 记录主机名,如www.apache.org;为off时记录IP地址,204.62.129.132。 # 默认值为off,这要比设为on好得多,因为如果设为on则每个用户端请求都将会 # 至少造成对 nameserver 进行一次查询。 # HostnameLookups Off # # EnableMMAP:控制是否进行内存转储(如果操作系统支持的话)。 # 默认为on,如果你的服务器安装在网络文件系统上(NFS),请关闭它。 # 在一些系统上,关闭它会提升系统性能(与文件系统类型无关); # 具体情况请参阅http://httpd.apache.org/do… # # EnableMMAP off # # EnableSendfile:控制是否使用sendfile kernel支持发送文件 # (如果操作系统支持的话)。默认为on,如果你的服务器安装在网络文件系统 # (NFS)上,请你关闭它。 # 参见http://httpd.apache.org/do… # # EnableSendfile off # # ErrorLog:错误日志文件定位。 # 如果你没有在内定义ErrorLog指令,这个虚拟主机的错误信息 # 将记录在这里。如果你在那儿定义了ErrorLog,这些错误信息将记录在你所 # 定义的文件里,而不是这儿定义的文件。 # ErrorLog logs/error_log # # LogLevel:控制记录在错误日志文件中的日志信息数量。 # 可能的值包括:debug,info,notice,warn,error,crit,alert,emerg。 # LogLevel warn # # 下面的指令为CustomLog指令定义格式别名。 # LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”" combined LogFormat “%h %l %u %t \”%r\” %>s %b” common LogFormat “%{Referer}i -> %U” referer LogFormat “%{User-agent}i” agent # 你需要安装了mod_logio.c模块才能使用%I和%O。 # LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\” %I %O” combinedio # # 指定接入日志文件的定位和格式(一般日志格式)。 # 如果你没有在内定义这个指令,传输信息将记录在这里, # 如果你定义了这个指令,则记录在你指定的位置,而不是这儿定义的位置。 # CustomLog logs/access_log common # # 如果你想要记录agent和referer信息,可以使用下面的指令 # # CustomLog logs/referer_log referer # CustomLog logs/agent_log agent # # 如果你想要使用一个文件记录access,agent和referer信息, # 你可以如下定义这个指令: # # CustomLog logs/access_log combined # # ServerTokens # 这个指令定义包含在HTTP回应头中的信息类型。默认为“Full”, # 这表示在回应头中将包含模块中的操作系统类型和编译信息。 # 可以设为列各值中的一个: # Full | OS | Minor | Minimal | Major | Prod # Full传达的信息最多,而Prod最少。 # ServerTokens Full # # 随意的添加包含服务器版本和虚拟主机名字一行信息到server-generated输出页中 # (内部错误文档,FTP目录列表,mod_status和mod_info输出等等,除了CGI错误 # 或自定义的错误文档以外)。 # 设为“EMail”将包含一个指向ServerAdmin的mailto:连接。 # 可以为如下值:On | Off | EMail # ServerSignature On # # Aliases:在这时添加你需要的别名,格式如下: # Alias 别名 真实名 # # 注意,如果你在别名的未尾包含了“/”,那么在URL中也需要包含“/”。 # 因此,“/icons”不是这个示例中的别名。 # 如果别名中以“/”结尾,那么真实名也必须以“/”结尾, # 如果别名中省略了结尾的“/”,那么真实名也必须省略。 # # 我们使用别名“/icons/”来表示FancyIndexed目录列表,如果你不使用、 # FancyIndexing,你可以注释掉它。 # # Alias /icons/ “/usr/local/apache2/icons/” # # Options Indexes MultiViews # AllowOverride None # Order allow,deny ## Allow from all # # # 这将改变ServerRoot/manual。这个别名提供了手册页所在的位置, # 即使你改变了你的DocumentRoot。如果你对有无手册页并不在意的话, # 你可以注释掉它。 # Alias /manual “/usr/loacl/apache2/manual” Options Indexes FollowSymLinks MultiViews IncludesNoExec AddOutputFilter Includes html Order allow,deny Allow from all # # ScriptAlias:指定包含服务脚本的目录。 # ScriptAliases 本质上与Aliases一样,除了这里的文档在请求时做为程序处理处理以外。 # 尾部的“/”规则与Alias一样 # ScriptAlias /cgi-bin/ “/usr/loacl/apache2/cgi-bin/” # 这里是添加php 4支持的指令 AddType application/x-httpd-php .php LoadModule php4_module modules/libphp4.so # # 添加mod_cgid.c设置,mod_cgid提供使用cgid进行通讯的UNIX套接字的 # 脚本接口路径。 # # Scriptsock logs/cgisock # # 将”/usr/local/apache2/cgi-bin”改为你的ScriptAliased指定的CGI目录, # 如果你配置了的话。 # AllowOverride None Options None Order allow,deny Allow from all # # Redirect允许你告诉客户端使用存在于服务器名字空间中的文档, # 而不是现在的,这帮助客户定位那些改变了位置的文档。 # 例如: # Redirect permanent /foo http://www.example.com/bar # # 控制server-generated目录列表显示的指令 # # # IndexOptions:控制server-generated目录列表显示特征。 # IndexOptions FancyIndexing VersionSort # # AddIcon* 指令告诉服务器不同扩展名的图象文件如何显示, # 只适用于FancyIndexed指令 # AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text # 基于 NCSA 服务的配置文件。 # #这是Apache服务器主要配置文件。 #它包含服务器的影响服务器运行的配置指令。 #参见http://httpd.ache.org/doc-…>以取得关于这些指令的详细信息 # #不要只是简单的阅读这些指令信息而不去理解它。 #这里只是做了简单的说明,如果你没有参考在线文件,你就会被警告。 # #这些配置指令被分为下面三个部分: #1. 控制整个Apache服务器行为的部分(即全局环境变量) #2. 定义主要或者默认服务参数的指令,也为所有虚拟主机提供默认的设置参数 #3. 虚拟主机的设置参数 # #配置和日志文件名:如果你指定的文件名以“/”开始(win32下以“dirver:/”), #服务器将使用绝对路径,如果文件名不是以“/”开始的,那么它将把ServerRoot #的值附加在文件名的前面,例如,对“logs/foo.log”,如果ServerRoot的值 #为“/usr/local/apache2”,则该文件应为“/usr/local/apache2/logs/foo.log” # ##第一区:全局环境参数 # #这里设置的参数将影响整个Apache服务器的行为; #例如Apache能够处理的并发请求的数量等。 # #ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录。 # #注意!如果你想要将它指定为NFS或其它网络上的位置, #请一定要去阅读与LockFile有关的文档(可能在 #http://httpd.apache.org/do…> )。 #这将会使你自己也能解决很多问题。 # #路径的结尾不要添加斜线。 # ServerRoot “/usr/loacl/apache2″ # #串行访问的锁文件必须保存在本地磁盘上 # #LockFile logs/accept.lock #ScoreBoardFile:用来保存内部服务进程信息的文件。 #如果未指明(默认),记分板(scoreboard)将被保存在一个匿名的共享内存段中, #并且它不能被第三方软件所使用。 #如果指定了,要确保不能使用两个Apache使用同一个记分板文件, #这个记分板文件必须保存在本地磁盘上。 # #ScoreBoardFile logs/apache_runtime_status # #PidFile:记录服务器启动进程号的文件。 # PidFile logs/httpd.pid # #Timeout:接收和发送前超时秒数 # Timeout 300 # #KeepAlive:是否允许稳固的连接(每个连接有多个请求), #设为”Off”则停用。 # KeepAlive On # #MaxKeepAliveRequests:在稳固连接期间允许的最大请求数, #设为0表示无限制接入。 #我们推荐你将其设为一个较大的值,以便提高性能 MaxKeepAliveRequests 100 # #KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数 # KeepAliveTimeout 15 ## ##Server-Pool大小设定(针对MPM的) ## # prefork MPM # StartServers:启动时服务器启动的进程数 # MinSpareServers:保有的备用进程的最小数目 # MaxSpareServers:保有的备用进程的最大数目 # MaxClients:服务器允许启动的最大进程数 # MaxRequestsPerChild:一个服务进程允许的最大请求数 StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestPerChild 0 # worker MPM # StartServers:服务器启动时的服务进程数目 # MaxClients:允许同时连接的最大用户数目 # MinSpareThreads:保有的最小工作线程数目 # MaxSpareThreads:允许保有的最大工作线程数目 # ThreadsPerChild:每个服务进程中的工作线程常数 # MaxRequestsPerChild:服务进程中允许的最大请求数目 StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 # perchild MPM # NumServers:服务进程数量 # StartThreads:每个服务进程中的起始线程数量 # MinSpareThreads:保有的最小线程数量 # MaxSpareThreads:保有的最大线程数量 # MaxThreadsPerChild:每个服务进程允许的最大线程数 # MaxRequestsPerChild:每个服务进程允许连接的最大数量 NumServers 5 StartThreads 5 MinSpareThreads 5 MaxSpareThreads 10 MaxThreadsPerChild 20 MaxRequestsPerChild 0 # WinNT MPM # ThreadsPerChild:服务进程中工作线程常数 # MaxRequestsPerChild:服务进程允许的最大请求数 ThreadsPerChild 250 MaxRequestsPerChild 0 # BeOS MPM # StartThreads:服务器启动时启动的线程数 # MaxClients:可以启动的最大线程数(一个线程等于一个用户) # MaxRequestsPerThread:每个线程允许的最大请求数 StartThreads 10 MaxClients 50 MaxRequestsPerThread 10000 # NetWare MPM # ThreadStachSize:为每个工作线程分配的堆栈尺寸 # StartThreads:服务器启动时启动的线程数 # MinSpareThreads:用于处理实发请求的空闲线程数 # MaxSpareThreads:空闲线程的最大数量 # MaxThreads:在同一时间活动的最大线程数 # MaxRequestPerChild:一个线程服务请求的最大数量, # 推荐将其设置为0,以实现无限制的接入 ThreadStackSize 65536 StartThreads 250 MinSpareThreads 25 MaxSpareThreads 250 MaxThreads 1000 MaxRequestPerChild 0 # OS/2 MPM # StartServers:启动的服务进程数量 # MinSpareThreads:每个进程允许的最小空闲线程 # MaxSpareThreads:每个进程允许的最大空闲线程 # MaxRequestsPerChild:每个服务进程允许的最大连接数 StartServers 2 MinSpareThreads 5 MaxSpareThreads 10 MaxRequestsPerChild 0 # # Listen:允许你绑定Apache服务到指定的IP地址和端口上,以取代默认值 # 参见指令 # 使用如下命令使Apache只在指定的IP地址上监听, # 以防止它在IP地址0.0.0.0上监听 # # Listen 12.34.56.78:80 Listen 80 # # 动态共享支持(DSO) # # 为了能够使用那些以DSO模式编译的模块中的函数,你必须有相应的“LoadModule”行, # 因此,在这里包含了这些指令,以便能在使用它之前激活。 # 那些静态编译的模块不需要在这里列出 (即以“httpd -l”列出的模块) # # 示例: # LoadModule foo_module modules/mod_foo.so # # # ExtendedStatus:当调用“server-status”时,控制Apache是产生“全”状态 # 信息(ExtendedStatus On),还是产生基本信息(ExtendedStatus Off)。 # 默认为off # # ExtendedStatus On ### 第二区:“主”服务配置 # # 这一区建立被 “主” 服务器用的指令值,以回应那些不被 # 定义处理的任何请求。 # 这些数值也提供默认值给后面定义的容器。 # 如果中有定义,那么这里定义的指令值将被 # 中的定义所覆盖。 # # # 如果你想使httpd以另外的用户或组来运行,你必须在开始时以root方式启动 # 然后再将它切换为你想要使用的用户或组。 # # User/Group:运行httpd的用户和组 # 在SCO (ODT3)上使用“User nouser”和“Group nogroup” # 在HPUX上,你可能不能以nobody身份使用共享内存,建议创建一个www用户。 # 注意一些核心(kernel)在组ID大于60000时拒绝setgid(Group)或semctl(IPC_SET), #节在这些系统上不要使用“Group #-1”。 # User nobody Group #-1 # # ServerAdmin:你的邮件地址,当发生问题时Apache将向你发出邮件。 # 作为一个出错文档,这个地址显示在server-generated页上, # 例如:admin@your-domain.com # ServerAdmin kreny@sina.com # # ServerName指定Apache用于识别自身的名字和端口号。 # 通常这个值是自动指定的,但是我们推荐你显式的指定它以防止启动时出错 # # 如果你为你的主机指定了一个无效的DNS名,server-generated重定向将不能工作。 # 参见UseCanonicalName指令 # # 如果你的主机没有注册DNS名,在这里键入它的IP地址 # 无论如何,你必须使用它的IP地址来提供服务, # 这里使用一种容易理解的方式重定向服务 ServerName www.dalouis.com:80 # # UseCanonicalName:决定Apache如何构造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。 # 当设置为 “Off”时,Apache会使用用户端提供的主机名和端口号。 # 当设置为“On”,Apache会使用ServerName指令的值。 # UseCanonicalName Off # # DocumentRoot:你的文档的根目录。默认情况下,所有的请求从这个目录进行应答。 # 但是可以使用符号链接和别名来指向到其他的位置。 # DocumentRoot “/home/redhat/public_html” # # Apache可以存取的每个目录都可以配置存取权限(包括它的子目录)。 # # 首先,我们配置一个高限制的特征。 # 这将禁止访问文件系统所在的目录,并添加你希望允许访问的目录块。 # 如下所示 Order Deny,Allow Deny from all # # 注意从这里开始你一定要明确地允许哪些特别的特征能够被使用。 # – 所以,如果Apache没有象你所期待的那样工作的话, # 请检查你是否在下面明确的指定它可用。 # # # 这将改变到你设置的DocumentRoot # # # Options:这个指令的值可以是“None”,“All”,或者下列选项的任意组合: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # 注意,“MultiViews”必须被显式的指定,“Options All”不能为你提供这个特性。 # # 这个指令既复杂又重要,请参见 #“http://httpd.apache.org/do…〉酶嗟男畔ⅰ?lt;/a> # Options FollowSymLinks # # AllowOverride控制那些被放置在.htaccess文件中的指令。 # 它可以是“All”,“None”,或者下列指令的组合: # Options FileInfo AuthConfig Limit # AllowOverride None # # 控制谁可以获得服务。 # Order allow,deny Allow from all # # UserDir:指定在得到一个~user请求时将会添加到用户home目录后的目录名。 # UserDir public_html # 为防止在UserDir指令上的漏洞,对root用户设置 # 象“./”这样的UserDir是非常有用的。 # 如果你使用Apache 1.3或以上版本,我们强烈建议你 # 在你的服务器配置文件中包含下面的行 UserDir disabled root # # 下面是一个使用UserDir指令使一个站点的目录具有只读属性的示例: # # # AllowOverride FileInfo AuthConfig Limit Indexes # Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec # # Order allow,deny # Allow from all # # # Order deny,allow # Deny from all # # # # DirectoryIndex:定义请求是一个目录时,Apache向用户提供服务的文件名 # # index.html.var文件(一个类型映象文件)用于提供一个文档处理列表, # 出于同样的目的,也可以使用MultiViews选项,但是它会非常慢。 # DirectoryIndex index.php index.html index.html.var # # AccessFileName:在每个目录中查询为目录提供附加配置指令的文件的文件名。 # 参见AllowOverride指令。 # AccessFileName .htaccess # # 下面的行防止.htaccess和.htpasswd文件被Web客户查看。 # Order allow,deny Deny from all # # Typeconfig:定义在哪里查询mime.types文件。 # TypeConfig conf/mime.types # # DefaultType:定义当不能确定MIME类型时服务器提供的默认MIME类型。 # 如果你的服务主要包含text或HTML文档,“text/plain”是一个好的选择; # 如果大多是二进制文档,诸如软件或图像,你应使用 # “application/octer-stream”来防止浏览器象显示文本那样显示二进制文件。 # DefaultType text/plain # # mod_mime_magic允许服务器从自己定义自己类型的文件中使用不同的线索(hints), # 这个MIMEMagicFile指令定义hints定义所在的文件。 # MIMEMagicFile conf/magic # # HostnameLookups:指定记录用户端的名字还是IP地址,例如,本指令为on时 # 记录主机名,如www.apache.org;为off时记录IP地址,204.62.129.132。 # 默认值为off,这要比设为on好得多,因为如果设为on则每个用户端请求都将会 # 至少造成对 nameserver 进行一次查询。 # HostnameLookups Off # # EnableMMAP:控制是否进行内存转储(如果操作系统支持的话)。 # 默认为on,如果你的服务器安装在网络文件系统上(NFS),请关闭它。 # 在一些系统上,关闭它会提升系统性能(与文件系统类型无关); # 具体情况请参阅http://httpd.apache.org/do… # # EnableMMAP off # # EnableSendfile:控制是否使用sendfile kernel支持发送文件 # (如果操作系统支持的话)。默认为on,如果你的服务器安装在网络文件系统 # (NFS)上,请你关闭它。 # 参见http://httpd.apache.org/do… # # EnableSendfile off # # ErrorLog:错误日志文件定位。 # 如果你没有在内定义ErrorLog指令,这个虚拟主机的错误信息 # 将记录在这里。如果你在那儿定义了ErrorLog,这些错误信息将记录在你所 # 定义的文件里,而不是这儿定义的文件。 # ErrorLog logs/error_log # # LogLevel:控制记录在错误日志文件中的日志信息数量。 # 可能的值包括:debug,info,notice,warn,error,crit,alert,emerg。 # LogLevel warn # # 下面的指令为CustomLog指令定义格式别名。 # LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”" combined LogFormat “%h %l %u %t \”%r\” %>s %b” common LogFormat “%{Referer}i -> %U” referer LogFormat “%{User-agent}i” agent # 你需要安装了mod_logio.c模块才能使用%I和%O。 # LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\” %I %O” combinedio # # 指定接入日志文件的定位和格式(一般日志格式)。 # 如果你没有在内定义这个指令,传输信息将记录在这里, # 如果你定义了这个指令,则记录在你指定的位置,而不是这儿定义的位置。 # CustomLog logs/access_log common # # 如果你想要记录agent和referer信息,可以使用下面的指令 # # CustomLog logs/referer_log referer # CustomLog logs/agent_log agent # # 如果你想要使用一个文件记录access,agent和referer信息, # 你可以如下定义这个指令: # # CustomLog logs/access_log combined # # ServerTokens # 这个指令定义包含在HTTP回应头中的信息类型。默认为“Full”, # 这表示在回应头中将包含模块中的操作系统类型和编译信息。 # 可以设为列各值中的一个: # Full | OS | Minor | Minimal | Major | Prod # Full传达的信息最多,而Prod最少。 # ServerTokens Full # # 随意的添加包含服务器版本和虚拟主机名字一行信息到server-generated输出页中 # (内部错误文档,FTP目录列表,mod_status和mod_info输出等等,除了CGI错误 # 或自定义的错误文档以外)。 # 设为“EMail”将包含一个指向ServerAdmin的mailto:连接。 # 可以为如下值:On | Off | EMail # ServerSignature On # # Aliases:在这时添加你需要的别名,格式如下: # Alias 别名 真实名 # # 注意,如果你在别名的未尾包含了“/”,那么在URL中也需要包含“/”。 # 因此,“/icons”不是这个示例中的别名。 # 如果别名中以“/”结尾,那么真实名也必须以“/”结尾, # 如果别名中省略了结尾的“/”,那么真实名也必须省略。 # # 我们使用别名“/icons/”来表示FancyIndexed目录列表,如果你不使用、 # FancyIndexing,你可以注释掉它。 # # Alias /icons/ “/usr/local/apache2/icons/” # # Options Indexes MultiViews # AllowOverride None # Order allow,deny ## Allow from all # # # 这将改变ServerRoot/manual。这个别名提供了手册页所在的位置, # 即使你改变了你的DocumentRoot。如果你对有无手册页并不在意的话, # 你可以注释掉它。 # Alias /manual “/usr/loacl/apache2/manual” Options Indexes FollowSymLinks MultiViews IncludesNoExec AddOutputFilter Includes html Order allow,deny Allow from all # # ScriptAlias:指定包含服务脚本的目录。 # ScriptAliases 本质上与Aliases一样,除了这里的文档在请求时做为程序处理处理以外。 # 尾部的“/”规则与Alias一样 # ScriptAlias /cgi-bin/ “/usr/loacl/apache2/cgi-bin/” # 这里是添加php 4支持的指令 AddType application/x-httpd-php .php LoadModule php4_module modules/libphp4.so # # 添加mod_cgid.c设置,mod_cgid提供使用cgid进行通讯的UNIX套接字的 # 脚本接口路径。 # # Scriptsock logs/cgisock # # 将”/usr/local/apache2/cgi-bin”改为你的ScriptAliased指定的CGI目录, # 如果你配置了的话。 # AllowOverride None Options None Order allow,deny Allow from all # # Redirect允许你告诉客户端使用存在于服务器名字空间中的文档, # 而不是现在的,这帮助客户定位那些改变了位置的文档。 # 例如: # Redirect permanent /foo http://www.example.com/bar # # 控制server-generated目录列表显示的指令 # # # IndexOptions:控制server-generated目录列表显示特征。 # IndexOptions FancyIndexing VersionSort # # AddIcon* 指令告诉服务器不同扩展名的图象文件如何显示, # 只适用于FancyIndexed指令 # AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text... 全文

apache 配置 休闲 职场

Apache缓存mod_cache配置

Apache缓存mod_cache配置 Apache 的缓存方式有两种,一种是基于硬盘文件的缓存,由 mod_disk_cache 实现,另一种是使用内存缓存,由 mod_mem_cache 实现,不过它们都是依赖 mod_cache 模块的,mod_cache 模块提供了一些缓存配置的指令供它们使用,而 mod_file_cache 模块是搭配 mod_mem_cache 模块使用的,下面分别进行介绍。1、基于硬盘文件的缓存 基于硬盘文件存储的缓存由 mod_disk_cache 模块实现,先看个简单的配置例子:... 全文

Apache缓存mod_cache配置

apache配置优化(七)

Apache--mod_deflate模块(这是apache调优的重要参数)mod_deflate介绍:该模提供了DEFLATE输出过滤器,允许服务器在将输出内容发发送到客户端以前进行压缩,以节约带宽。好处一:提升用户体验由于内容小了,所以访问页面就快了,用户体验提升了,网站口碑就好了。好处二:节省网站带宽成本... 全文

服务器 apache 配置优化

关于Apache的几种配置介绍

Apache虚拟主机的配置过程有三种:基于Ip、基于端口、基于域名这是在红帽5.8的系统上做的,首先挂载光盘,配置yum库,安装开发环境  mkdir /mnt/cdrom  mount /dev/cdrom /mnt/cdrom  vim /etc/yum.reps.d/server.repo  [base]  name=server baseurl=file:///mnt/cdrom/Server  enabled=1 gpgcheck=0 yum groupinstall "Development Libraries" –y  (一般是要安装两个的,但Development Tools默认是安装过的,所以这里只需要安装一个就可以了)  安装httpd包  yum list all | grep httpd  准备工作:开始之前要确定selinux是否关闭,要取消中心主机  1、关闭selinux  setenforce 0  查看是否关闭  getenforce  2、取消中心主机  vim /etc/httpd/conf/httpd.conf  3、编辑一个新的配置文件,管理起来也比较方便,我们先做一个基于IP的虚拟主机  ... 全文

apache 虚拟主机 配置

Apache虚拟主机配置(五)

基于域名的配置主机实战配置取消httpd.conf该行注视[root@eric6 ~]#vi/application/apache/conf/httpd.confIncludeconf/extra/httpd-vhosts.conf[root@eric6 ~]# cd/application/apache/conf/extra/[root@eric6 extra]#cp httpd-vhosts.conf httpd-vhosts.conf.$(date +%F)[root@eric6extra]#vi httpd-vhosts.conf... 全文

Apache 虚拟主机 配置

高效分析linux系统中配置Apache服务

学习linux系统服务时,你可能会遇到多种问题,这里将介绍在linux系统中配置Apache服务问题的解决方法,在这里拿出来和大家分享一下。... 全文

linux系统中配置Apache

Linux Apache PHP编译配置

1、下载Apache Web服务器源码及相关依赖库进入http://www.apache.org,选择一个服务器下载相关的源码。这里请注意:apache其实是一个基金会名称,旗下有很多开源项目,apache web服务器只是apache基金会其中一个项目而已,所以很多朋友在进入apache主页后,很难找到apache web server下载的地方,apache web server在其源码库中名称为httpd-xxx(xxx为版本)。基本步骤是:首页点击download,进入下载页后,选择一个服务器,一般选择国内服务器即可(.cn域名或标注为在China的服务器即可),这里我们选择:http://mirrors.hust.edu.cn/apache/,进入服务器后,点击httpd目录,选择一个最新稳定版下载即可(如:http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.10.tar.bz2);下载好web server 源码后,返回上级目录(即:http://mirrors.hust.edu.cn/apache/),下载httpd的依赖库apr(apr好像是apache portalble runtime的简写,就是apache的可移植运行库,很多开源软件都构建在这个库上,如PHP,这个库提供一些跨平台的系统功能,如内存管理等),点击apr文件夹,下载apr和apr-uitl源码(如:http://mirrors.hust.edu.cn/apache/apr/apr-1.5.1.tar.bz2,http://mirrors.hust.edu.cn/apache/apr/apr-util-1.5.4.tar.bz2)。apache除了依赖apr和apr-util,还依赖于pcre库,这个库是一个跨平台的正则表达式处理库,官方网址为http://www.pcre.org/,进入主页后,选择一个服务器,下载一个最新版本源码即可(如:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.bz2)。... 全文

linux 编译 Apache PHP 配置

Linux Apache PHP编译配置

1、下载Apache Web服务器源码及相关依赖库进入http://www.apache.org,选择一个服务器下载相关的源码。这里请注意:apache其实是一个基金会名称,旗下有很多开源项目,apache web服务器只是apache基金会其中一个项目而已,所以很多朋友在进入apache主页后,很难找到apache web server下载的地方,apache web server在其源码库中名称为httpd-xxx(xxx为版本)。基本步骤是:首页点击download,进入下载页后,选择一个服务器,一般选择国内服务器即可(.cn域名或标注为在China的服务器即可),这里我们选择:http://mirrors.hust.edu.cn/apache/,进入服务器后,点击httpd目录,选择一个最新稳定版下载即可(如:http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.10.tar.bz2);下载好web server 源码后,返回上级目录(即:http://mirrors.hust.edu.cn/apache/),下载httpd的依赖库apr(apr好像是apache portalble runtime的简写,就是apache的可移植运行库,很多开源软件都构建在这个库上,如PHP,这个库提供一些跨平台的系统功能,如内存管理等),点击apr文件夹,下载apr和apr-uitl源码(如:http://mirrors.hust.edu.cn/apache/apr/apr-1.5.1.tar.bz2,http://mirrors.hust.edu.cn/apache/apr/apr-util-1.5.4.tar.bz2)。apache除了依赖apr和apr-util,还依赖于pcre库,这个库是一个跨平台的正则表达式处理库,官方网址为http://www.pcre.org/,进入主页后,选择一个服务器,下载一个最新版本源码即可(如:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.36.tar.bz2)。... 全文

linux 编译 Apache PHP 配置

Apache服务器配置文件详解

apache2.0,apache2.2,apache2.2.2,httpd.conf 详尽中文解释,如何配置设置,非常详细 转自:http://linux-down.kmip.net/ # # 基于 NCSA 服务的配置文件。 # #这是Apache服务器主要配置文件。 #它包含服务器的影响服务器运行的配置指令。 #参见<URL:http://httpd.ache.org/doc-2.0/>以取得关于这些指令的详细信息 # #不要只是简单的阅读这些指令信息而不去理解它。 #这里只是做了简单的说明,如果你没有参考在线文件,你就会被警告。 # #这些配置指令被分为下面三个部分: #1. 控制整个Apache服务器行为的部分(即全局环境变量) #2. 定义主要或者默认服务参数的指令,也为所有虚拟主机提供默认的设置参数 #3. 虚拟主机的设置参数 # #配置和日志文件名:如果你指定的文件名以“/”开始(win32下以“dirver:/”), #服务器将使用绝对路径,如果文件名不是以“/”开始的,那么它将把ServerRoot #的值附加在文件名的前面,例如,对“logs/foo.log",如果ServerRoot的值 #为“/usr/local/apache2”,则该文件应为“/usr/local/apache2/logs/foo.log” # ##第一区:全局环境参数 # #这里设置的参数将影响整个Apache服务器的行为; #例如Apache能够处理的并发请求的数量等。 # #ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录。 # #注意!如果你想要将它指定为NFS或其它网络上的位置, #请一定要去阅读与LockFile有关的文档(可能在 #<URL:http://httpd.apache.org/docs-2.0 ... .html#lockfile>)。 #这将会使你自己也能解决很多问题。 # #路径的结尾不要添加斜线。 # ServerRoot "/usr/loacl/apache2" # #串行访问的锁文件必须保存在本地磁盘上 # <IfModule !mpm_winnt.c> <IfModule !mpm_neware.c> #LockFile logs/accept.lock </IfModule> </IfModule> #ScoreBoardFile:用来保存内部服务进程信息的文件。 #如果未指明(默认),记分板(scoreboard)将被保存在一个匿名的共享内存段中, #并且它不能被第三方软件所使用。 #如果指定了,要确保不能使用两个Apache使用同一个记分板文件, #这个记分板文件必须保存在本地磁盘上。 # <IfModule !mpm_netware.c> <IfModule !perchild.c> #ScoreBoardFile logs/apache_runtime_status <IfModule> <IfModule> # #PidFile:记录服务器启动进程号的文件。 # <IfModule !mpm_neware.c> PidFile logs/httpd.pid </IfModule> # #Timeout:接收和发送前超时秒数 # Timeout 300 # #KeepAlive:是否允许稳固的连接(每个连接有多个请求), #设为"Off"则停用。 # KeepAlive On # #MaxKeepAliveRequests:在稳固连接期间允许的最大请求数, #设为0表示无限制接入。 #我们推荐你将其设为一个较大的值,以便提高性能 MaxKeepAliveRequests 100 # #KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数 # KeepAliveTimeout 15 ## ##Server-Pool大小设定(针对MPM的) ## # prefork MPM # StartServers:启动时服务器启动的进程数 # MinSpareServers:保有的备用进程的最小数目 # MaxSpareServers:保有的备用进程的最大数目 # MaxClients:服务器允许启动的最大进程数 # MaxRequestsPerChild:一个服务进程允许的最大请求数 <IfModule prefork.c> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestPerChild 0 </IfModule> # worker MPM # StartServers:服务器启动时的服务进程数目 # MaxClients:允许同时连接的最大用户数目 # MinSpareThreads:保有的最小工作线程数目 # MaxSpareThreads:允许保有的最大工作线程数目 # ThreadsPerChild:每个服务进程中的工作线程常数 # MaxRequestsPerChild:服务进程中允许的最大请求数目 <IfModule worker.c> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule> # perchild MPM # NumServers:服务进程数量 # StartThreads:每个服务进程中的起始线程数量 # MinSpareThreads:保有的最小线程数量 # MaxSpareThreads:保有的最大线程数量 # MaxThreadsPerChild:每个服务进程允许的最大线程数 # MaxRequestsPerChild:每个服务进程允许连接的最大数量 <IfModule perchild.c> NumServers 5 StartThreads 5 MinSpareThreads 5 MaxSpareThreads 10 MaxThreadsPerChild 20 MaxRequestsPerChild 0 </IfModule> # WinNT MPM # ThreadsPerChild:服务进程中工作线程常数 # MaxRequestsPerChild:服务进程允许的最大请求数 <IfModule mpm_winnt.c> ThreadsPerChild 250 MaxRequestsPerChild 0 </IfModule> # BeOS MPM # StartThreads:服务器启动时启动的线程数 # MaxClients:可以启动的最大线程数(一个线程等于一个用户) # MaxRequestsPerThread:每个线程允许的最大请求数 <IfModule beos.c> StartThreads 10 MaxClients 50 MaxRequestsPerThread 10000 </IfModule> # NetWare MPM # ThreadStachSize:为每个工作线程分配的堆栈尺寸 # StartThreads:服务器启动时启动的线程数 # MinSpareThreads:用于处理实发请求的空闲线程数 # MaxSpareThreads:空闲线程的最大数量 # MaxThreads:在同一时间活动的最大线程数 # MaxRequestPerChild:一个线程服务请求的最大数量, # 推荐将其设置为0,以实现无限制的接入 <IfModule mpm_netware.c> ThreadStackSize 65536 StartThreads 250 MinSpareThreads 25 MaxSpareThreads 250 MaxThreads 1000 MaxRequestPerChild 0 </IfModule> # OS/2 MPM # StartServers:启动的服务进程数量 # MinSpareThreads:每个进程允许的最小空闲线程 # MaxSpareThreads:每个进程允许的最大空闲线程 # MaxRequestsPerChild:每个服务进程允许的最大连接数 <IfModule mpmt_os2.c> StartServers 2 MinSpareThreads 5 MaxSpareThreads 10 MaxRequestsPerChild 0 </IfModule> # # Listen:允许你绑定Apache服务到指定的IP地址和端口上,以取代默认值 # 参见<VirtualHost>指令 # 使用如下命令使Apache只在指定的IP地址上监听, # 以防止它在IP地址0.0.0.0上监听 # # Listen 12.34.56.78:80 Listen 80 # # 动态共享支持(DSO) # # 为了能够使用那些以DSO模式编译的模块中的函数,你必须有相应的“LoadModule”行, # 因此,在这里包含了这些指令,以便能在使用它之前激活。 # 那些静态编译的模块不需要在这里列出 (即以“httpd -l”列出的模块) # # 示例: # LoadModule foo_module modules/mod_foo.so # # # ExtendedStatus:当调用“server-status”时,控制Apache是产生“全”状态 # 信息(ExtendedStatus On),还是产生基本信息(ExtendedStatus Off)。 # 默认为off # # ExtendedStatus On ### 第二区:“主”服务配置 # # 这一区建立被 “主” 服务器用的指令值,以回应那些不被 <VirtualHost> # 定义处理的任何请求。 # 这些数值也提供默认值给后面定义的<VirtualHost>容器。 # 如果<VirtualHost>中有定义,那么这里定义的指令值将被 # <VirtualHost>中的定义所覆盖。 # <IfModule !mpm_winnt.c> <IfModule !mpm_neware.c> # # 如果你想使httpd以另外的用户或组来运行,你必须在开始时以root方式启动 # 然后再将它切换为你想要使用的用户或组。 # # User/Group:运行httpd的用户和组 # 在SCO (ODT3)上使用“User nouser”和“Group nogroup” # 在HPUX上,你可能不能以nobody身份使用共享内存,建议创建一个www用户。 # 注意一些核心(kernel)在组ID大于60000时拒绝setgid(Group)或semctl(IPC_SET), #节在这些系统上不要使用“Group #-1”。 # User nobody Group #-1 </IfModule> </IfModule> # # ServerAdmin:你的邮件地址,当发生问题时Apache将向你发出邮件。 # 作为一个出错文档,这个地址显示在server-generated页上, # 例如:admin@your-domain.com # ServerAdmin kreny@sina.com # # ServerName指定Apache用于识别自身的名字和端口号。 # 通常这个值是自动指定的,但是我们推荐你显式的指定它以防止启动时出错 # # 如果你为你的主机指定了一个无效的DNS名,server-generated重定向将不能工作。 # 参见UseCanonicalName指令 # # 如果你的主机没有注册DNS名,在这里键入它的IP地址 # 无论如何,你必须使用它的IP地址来提供服务, # 这里使用一种容易理解的方式重定向服务 ServerName www.dalouis.com:80 # # UseCanonicalName:决定Apache如何构造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。 # 当设置为 “Off”时,Apache会使用用户端提供的主机名和端口号。 # 当设置为“On”,Apache会使用ServerName指令的值。 # UseCanonicalName Off # # DocumentRoot:你的文档的根目录。默认情况下,所有的请求从这个目录进行应答。 # 但是可以使用符号链接和别名来指向到其他的位置。 # DocumentRoot "/home/redhat/public_html" # # Apache可以存取的每个目录都可以配置存取权限(包括它的子目录)。 # # 首先,我们配置一个高限制的特征。 # 这将禁止访问文件系统所在的目录,并添加你希望允许访问的目录块。 # 如下所示 <Directory /> Order Deny,Allow Deny from all </Directory> # # 注意从这里开始你一定要明确地允许哪些特别的特征能够被使用。 # - 所以,如果Apache没有象你所期待的那样工作的话, # 请检查你是否在下面明确的指定它可用。 # # # 这将改变到你设置的DocumentRoot # <Directory "/home/redhat/public_html"> # # Options:这个指令的值可以是“None”,“All”,或者下列选项的任意组合: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # 注意,“MultiViews”必须被显式的指定,“Options All”不能为你提供这个特性。 # # 这个指令既复杂又重要,请参见 #“http://httpd.apache.org/docs-2.0/mod/core.html#optioins”以取得更多的信息。 # Options FollowSymLinks # # AllowOverride控制那些被放置在.htaccess文件中的指令。 # 它可以是“All”,“None”,或者下列指令的组合: # Options FileInfo AuthConfig Limit # AllowOverride None # # 控制谁可以获得服务。 # Order allow,deny Allow from all </Directory> # # UserDir:指定在得到一个~user请求时将会添加到用户home目录后的目录名。 # UserDir public_html # 为防止在UserDir指令上的漏洞,对root用户设置 # 象“./”这样的UserDir是非常有用的。 # 如果你使用Apache 1.3或以上版本,我们强烈建议你 # 在你的服务器配置文件中包含下面的行 UserDir disabled root # # 下面是一个使用UserDir指令使一个站点的目录具有只读属性的示例: # # <Directory /home/*/public_html> # AllowOverride FileInfo AuthConfig Limit Indexes # Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec # <Limit GET POST OPTIONS PROPFIND> # Order allow,deny # Allow from all # </Limit> # <LimitExcept GET POST OPTIONS PROPFIND> # Order deny,allow # Deny from all # </LimitExcept> # </Directory> # # DirectoryIndex:定义请求是一个目录时,Apache向用户提供服务的文件名 # # index.html.var文件(一个类型映象文件)用于提供一个文档处理列表, # 出于同样的目的,也可以使用MultiViews选项,但是它会非常慢。 # DirectoryIndex index.php index.html index.html.var # # AccessFileName:在每个目录中查询为目录提供附加配置指令的文件的文件名。 # 参见AllowOverride指令。 # AccessFileName .htaccess # # 下面的行防止.htaccess和.htpasswd文件被Web客户查看。 # <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> # # Typeconfig:定义在哪里查询mime.types文件。 # TypeConfig conf/mime.types # # DefaultType:定义当不能确定MIME类型时服务器提供的默认MIME类型。 # 如果你的服务主要包含text或HTML文档,“text/plain”是一个好的选择; # 如果大多是二进制文档,诸如软件或图像,你应使用 # “application/octer-stream”来防止浏览器象显示文本那样显示二进制文件。 # DefaultType text/plain # # mod_mime_magic允许服务器从自己定义自己类型的文件中使用不同的线索(hints), # 这个MIMEMagicFile指令定义hints定义所在的文件。 # <IfModule mod_mime_magic.c> MIMEMagicFile conf/magic </IfModule> # # HostnameLookups:指定记录用户端的名字还是IP地址,例如,本指令为on时 # 记录主机名,如www.apache.org;为off时记录IP地址,204.62.129.132。 # 默认值为off,这要比设为on好得多,因为如果设为on则每个用户端请求都将会 # 至少造成对 nameserver 进行一次查询。 # HostnameLookups Off # # EnableMMAP:控制是否进行内存转储(如果操作系统支持的话)。 # 默认为on,如果你的服务器安装在网络文件系统上(NFS),请关闭它。 # 在一些系统上,关闭它会提升系统性能(与文件系统类型无关); # 具体情况请参阅http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap # # EnableMMAP off # # EnableSendfile:控制是否使用sendfile kernel支持发送文件 # (如果操作系统支持的话)。默认为on,如果你的服务器安装在网络文件系统 # (NFS)上,请你关闭它。 # 参见http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile # # EnableSendfile off # # ErrorLog:错误日志文件定位。 # 如果你没有在<VirtualHost>内定义ErrorLog指令,这个虚拟主机的错误信息 # 将记录在这里。如果你在那儿定义了ErrorLog,这些错误信息将记录在你所 # 定义的文件里,而不是这儿定义的文件。 # ErrorLog logs/error_log # # LogLevel:控制记录在错误日志文件中的日志信息数量。 # 可能的值包括:debug,info,notice,warn,error,crit,alert,emerg。 # LogLevel warn # # 下面的指令为CustomLog指令定义格式别名。 # LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent # 你需要安装了mod_logio.c模块才能使用%I和%O。 # LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio # # 指定接入日志文件的定位和格式(一般日志格式)。 # 如果你没有在<VirtualHost>内定义这个指令,传输信息将记录在这里, # 如果你定义了这个指令,则记录在你指定的位置,而不是这儿定义的位置。 # CustomLog logs/access_log common # # 如果你想要记录agent和referer信息,可以使用下面的指令 # # CustomLog logs/referer_log referer # CustomLog logs/agent_log agent # # 如果你想要使用一个文件记录access,agent和referer信息, # 你可以如下定义这个指令: # # CustomLog logs/access_log combined # # ServerTokens # 这个指令定义包含在HTTP回应头中的信息类型。默认为“Full”, # 这表示在回应头中将包含模块中的操作系统类型和编译信息。 # 可以设为列各值中的一个: # Full | OS | Minor | Minimal | Major | Prod # Full传达的信息最多,而Prod最少。 # ServerTokens Full # # 随意的添加包含服务器版本和虚拟主机名字一行信息到server-generated输出页中 # (内部错误文档,FTP目录列表,mod_status和mod_info输出等等,除了CGI错误 # 或自定义的错误文档以外)。 # 设为“EMail”将包含一个指向ServerAdmin的mailto:连接。 # 可以为如下值:On | Off | EMail # ServerSignature On # # Aliases:在这时添加你需要的别名,格式如下: # Alias 别名 真实名 # # 注意,如果你在别名的未尾包含了“/”,那么在URL中也需要包含“/”。 # 因此,“/icons”不是这个示例中的别名。 # 如果别名中以“/”结尾,那么真实名也必须以“/”结尾, # 如果别名中省略了结尾的“/”,那么真实名也必须省略。 # # 我们使用别名“/icons/”来表示FancyIndexed目录列表,如果你不使用、 # FancyIndexing,你可以注释掉它。 # # Alias /icons/ "/usr/local/apache2/icons/" # <Directory "/usr/local/apache2/icons"> # Options Indexes MultiViews # AllowOverride None # Order allow,deny ## Allow from all # </Directory> # # 这将改变ServerRoot/manual。这个别名提供了手册页所在的位置, # 即使你改变了你的DocumentRoot。如果你对有无手册页并不在意的话, # 你可以注释掉它。 # Alias /manual "/usr/loacl/apache2/manual" <Directory "/usr/local/apache2/manual"> Options Indexes FollowSymLinks MultiViews IncludesNoExec AddOutputFilter Includes html Order allow,deny Allow from all </Directory> # # ScriptAlias:指定包含服务脚本的目录。 # ScriptAliases 本质上与Aliases一样,除了这里的文档在请求时做为程序处理处理以外。 # 尾部的“/”规则与Alias一样 # ScriptAlias /cgi-bin/ "/usr/loacl/apache2/cgi-bin/" # 这里是添加php 4支持的指令 AddType application/x-httpd-php .php LoadModule php4_module modules/libphp4.so <IfModule mod_cgid.c> # # 添加mod_cgid.c设置,mod_cgid提供使用cgid进行通讯的UNIX套接字的 # 脚本接口路径。 # # Scriptsock logs/cgisock </IfModule> # # 将"/usr/local/apache2/cgi-bin"改为你的ScriptAliased指定的CGI目录, # 如果你配置了的话。 # <Directory "/usr/local/apache2/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> # # Redirect允许你告诉客户端使用存在于服务器名字空间中的文档, # 而不是现在的,这帮助客户定位那些改变了位置的文档。 # 例如: # Redirect permanent /foo http://www.example.com/bar # # 控制server-generated目录列表显示的指令 # # # IndexOptions:控制server-generated目录列表显示特征。 # IndexOptions FancyIndexing VersionSort # # AddIcon* 指令告诉服务器不同扩展名的图象文件如何显示, # 只适用于FancyIndexed指令 # AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text/* AddIconByType (IMG,/icons/image2.gif) image/* AddIconByType (SND,/icons/sound2.gif) audio/* AddIconByType (VID,/icons/movie.gif) video/* AddIcon /icons/binary.gif .bin .exe AddIcon /icons/binhex.gif .hqx AddIcon /icons/tar.gif .tar AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip AddIcon /icons/a.gif .ps .ai .eps AddIcon /icons/layout.gif .html .shtml .htm .pdf AddIcon /icons/text.gif .txt AddIcon /icons/c.gif .c AddIcon /icons/p.gif .pl .py AddIcon /icons/f.gif .for AddIcon /icons/dvi.gif .dvi AddIcon /icons/uuencoded.gif .uu AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl AddIcon /icons/tex.gif .tex AddIcon /icons/bomb.gif core AddIcon /icons/back.gif .. AddIcon /icons/hand.right.gif README AddIcon /icons/folder.gif ^^DIRECTORY^^ AddIcon /icons/blank.gif ^^BLANKICON^^ # # DefaultIcon 为那些没有显式定义图标的文件提供处理 # DefaultIcon /icons/unknown.gif # # AddDescription允许你在server-generated索引后放置一个简短的说明。 # 只对FancyIndexed指令有效。 # 格式:AddDescription "说明" 文件名 # # AddDescription "GZIP compressed document" .gz # AddDescription "tar archive" .tar # AddDescription "GZIP compressed tar archive" .tgz # # ReadmeName指定服务器默认查找的README文件的名字,并添加到目录列表中 # # HeaderName指定目录列表前缀文件的文件名 ReadmeName README.html HeaderName HEADER.html # # IndexIgnore指定目录索引忽略并且不包含在列表中的文件名集合, # 支持shell类型的通配符。 # IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t # # AddEncoding允许你在信息传送中使用(Mosaic/X 2.1+)解压缩信息, # 注意:不是所有的浏览器都支持这个选项。 # 尽管名字相似,但是下列的指令与上面的FancyIndexing定制指令不同。 # AddEncoding x-compress Z AddEncoding x-gzip gz tgz # # DefaultLanguage和AddLanguage允许你指定文档的语言。 # 这使你可以让用户用容易理解的语言浏览文档。 # # 指定默认的语言,这意味着所有没有指定语言的包都将使用该语言。 # 多数情况下,你也许并不想设置它,除非你确信这样做是正确的。 # 通常,不使用确定的语言比使用错误的语言要好。 # # DefaultLanguage nl # # 注意1:作为语言关键字的词缀毫无疑问是不能一样的--采用波兰 # 文的文档(网络标准语言代码是pl)将希望使用“AddLanguage pl .po” # 来避免与perl脚本的一般词缀产生二义性。 # # 注意2: 下面的例子举例说明在一些范例中语言的二字符缩写与它的国家 # 的二字符缩写不相同,例如 “Danmark/dk” 和 “Danmark/da” 的比较. # # 注意3: 在 “ltz” 的情况下我们使用三字符词缀,违犯了 RFC的规定, # 运行中将修复它并使用RFC1766标准取得参考数据。 # # Danish (da) - Dutch (nl) - English (en) - Estonian (et) # French (fr) - German (de) - Greek-Modern (el) # Italian (it) - Norwegian (no) - Norwegian Nynorsk (nn) - Korean (ko) # Portugese (pt) - Luxembourgeois* (ltz) # Spanish (es) - Swedish (sv) - Catalan (ca) - Czech(cz) # Polish (pl) - Brazilian Portuguese (pt-br) - Japanese (ja) # Russian (ru) - Croatian (hr) # AddLanguage da .dk AddLanguage nl .nl AddLanguage en .en AddLanguage et .et AddLanguage fr .fr AddLanguage de .de AddLanguage he .he AddLanguage el .el AddLanguage it .it AddLanguage ja .ja AddLanguage pl .po AddLanguage ko .ko AddLanguage pt .pt AddLanguage nn .nn AddLanguage no .no AddLanguage pt-br .pt-br AddLanguage ltz .ltz AddLanguage ca .ca AddLanguage es .es AddLanguage sv .sv AddLanguage cz .cz AddLanguage ru .ru AddLanguage tw .tw AddLanguage zh-tw .tw AddLanguage hr .hr # LanguagePriority允许你在会话过程中优先使用一些语言。 # # 以优先次序递减的方式列出它们。我们或多或少地采用按字母排列顺序的方式 # 排列它们。也许你想要改变这个顺序。 LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw # # ForceLanguagePriority 允许你为MULTIPLE CHOICES(Prefer)[在通讯的情况下] # 或NOT ACCEPTABLE(Fallback)[没有可接受的语言匹配的情况]提供一个结果页。 # ForceLanguagePriority Prefer Fallback # # 为发送出的所有页指定默认的字符集,这总是一个好主意,并且为你的 # web站点的国际化打开了大门,这不正是你曾经想要的吗。同样地,指定 # 默认字符集有一些小的损害,如一个使用iso-8859-1(latin1)标准命令 # 的页面,除非以别的方式指定例如你仅仅以显式方式声明它。 # 也有一些与那些总是鼓励你使用默认字符集的javascropt和URL语法有关 # 的浏览器安全原因。 # #AddDefaultCharset ISO-8859-1 AddDefaultCharse GB2312 # # 一般以文件扩展名的方式使用字符集。也许你想要避免与语言扩展发生 # 碰撞,除非你在每次改变后都做了很好的测试。 # 参见http://www.iana.org/assignments/character-sets以取得字符集 # 的名字列表和它们各自的RFCs。 # AddCharset ISO-8859-1 .iso8859-1 .latin1 AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen AddCharset ISO-8859-3 .iso8859-3 .latin3 AddCharset ISO-8859-4 .iso8859-4 .latin4 AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk AddCharset ISO-2022-JP .iso2022-jp .jis AddCharset ISO-2022-KR .iso2022-kr .kis AddCharset ISO-2022-CN .iso2022-cn .cis AddCharset Big5 .Big5 .big5 # 对于俄语,使用了多个字符集(如何使用主要依靠客户端): AddCharset WINDOWS-1251 .cp-1251 .win-1251 AddCharset CP866 .cp866 AddCharset KOI8-r .koi8-r .koi8-ru AddCharset KOI8-ru .koi8-uk .ua AddCharset ISO-10646-UCS-2 .ucs2 AddCharset ISO-10646-UCS-4 .ucs4 AddCharset UTF-8 .utf8 # 下面的字符集没有映射到一个特定的标准(iso)上,但是它们在浏览器 # 中被广泛的支持。注意那些大写字母。 # (它不应该,但是它是为兼容一些浏览器而做) # # 参见http://www.iana.org/assianments/character-sets以取得 # 它们的列表。但是浏览器支持较少。 # AddCharset GB2312 .gb2312 .gb AddCharset utf-7 .utf7 AddCharset utf-8 .utf8 AddCharset big5 .big5 .b5 AddCharset EUC-TW .euc-tw AddCharset EUC-JP .euc-jp AddCharset EUC-KR .euc-kr AddCharset shift_jis .sjis # # AddType允许你为指定的文件类型添加或覆盖mime.types文件中配置的MIME # AddType application/x-tar .tgz AddType image/x-icon .ico # # AddHandler允许你映射确定的文件扩展名到“handlers”: # 与文件类型无关的行为。这既能编译到服务器中也可以添加到Action指令 # 中(看下面)。 # 为了在ScriptAliased指令指定的以外使用CGI脚本: #(要使它可用,你还需要在Options中添加“ExecCGI”。 # # AddHandler cgi-script .cgi # # 对于那些包含他们自己的HTTP头的文件 # # AddHandler send-as-is asis # # 对于server-parsed imagemap文件: # # AddHandler imap-file map # # agemap 文件: # #AddHandler imap- 文件映像 # # 对于类型映像:(转移资源) #(这是默认的设定以允许Apache的“It Worked”页能多种语言分发)。 # AddHandler type-map var # # 过滤器允许你在将它发送到客户端前进行处理。 # # 为了在服务器端分析包含(SSI)的.shtml文档: # (要执行这个指令,你还需要在Options指令中添加“Includes”。) # # AddType text/html .shtml # AddOutputFilter INCLUDES .shtml # # Action让你定义当调用匹配的媒体文件时将要执行的脚本。这将减少 # 那些经常使用的CGI脚本的URL路径名的重复输入。 # 格式:Action media/type /cgi-script/location # 格式:Action handler-name /cgi-script/location # # # 可配置的错误应答有三种风格: # 1)plain text 2)local redirects 3) external redirects # # 一些示例: # ErrorDocument 500 "The server made a boo boo." # ErrorDocument 404 /missing.html # ErrorDocument 404 "/cgi-bin/missing_handler.pl" # ErrorDocument 402 http://www.example.com/subscription_info.html # # # 综合应用这些指令,我们可以创建一个国际化的出错应答。 # # 我们使用Alias来重定向任意/error/HTTP_<error>.html.var应答到 # 我们的多语言错误消息集合。使用正确的文本替代它。 # # 通过加入下面的行,你就能够改变这些消息的显示,而不必改变 # HTTP_<error>.html.var文件。 # # Alias /error/include/ "/your/include/path/" # # 以将/usr/local/apache2/error/include/下的文件拷贝到/your/inclue/path/下 # 开始,你可以创建你自己的文件集合,甚至是其于每个虚拟主机的。 # 不管你的ServerSignature如何设置,默认的包含文件将显示你的 # Aapche版本号和你的ServerAdmin邮件地址 # # 国际化的错误文档需要mod_alias,mod_include和mod_negotiation三个 # 模块。要激活它们,取消下面30行的注释符号 # Alias /error/ "/usr/local/apache2/error/" # # <Directory "/usr/local/apache2/error"> # AllowOverride None # Options IncludesNoExec # AddOutputFilter Includes html # AddHandler type-map var # Order allow,deny # Allow from all # LanguagePriority en de es fr it nl sv # ForceLanguagePriority Prefer Fallback # </Directory> # # ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var # ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var ErrorDocument 403 /error.php # ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var # ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var # ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var # ErrorDocument 410 /error/HTTP_GONE.html.var # ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var # ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var # ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var # ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var # ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var # ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var # ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var # ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var # ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var # ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var # # 下面的命令更改标准的HTTP应答行为以处理己知的浏览器问题。 # BrowserMatch "Mozilla/2" nokeepalive BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 BrowserMatch "RealPlayer 4\.0" force-response-1.0 BrowserMatch "Java/1\.0" force-response-1.0 BrowserMatch "JDK/1\.0" force-response-1.0 # # 下面命令关闭对那些没有尾部“/”的目录的非GET请求的重定向, # 这些命令修复了微软的采用DAV方法不能正确处理重定向的WEB文件夹的问题。 # Apple下的DAV文件系统和Gnome下的VFS对DAV的支持也是采用这样的方法 # 进行处理的。 # BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully BrowserMatch "^WebDrive" redirect-carefully BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully BrowserMatch "^gnome-vfs" redirect-carefully # # 允许你使用URL:http://servername/server-status来通过mod_status生 # 成并报告服务器状态信息。改变.example.com为你自己的域名。 # # <Location /server-status> # SetHandler server-status # Order deny,allow # Deny from all # Allow from .example.com # </Location> # # 允许使用URL:http://servername/server-info来远程报告服务器配置信息 # (需要mod_info.c支持)。改变“.example.com”为你自己的域名。 # # <Location /server-info> # SetHandler server-info # Order deny,allow # Deny from all # Allow from .example.com # </Location> # # 代理服务器命令,去掉下面的行使代理服务可用。 # # <IfModule mod_proxy.c> # ProxyRequests On # <Proxy *> # Order deny,allow # Deny from all # Allow from .example.com # </Proxy> # # 安装或关闭HTTP/1.1“通道”头处理。 # (“Full”添加服务器版本信息,“Block”移掉所有输出“通道”头信息。 # 可以设为下面各选项之一:Off | On | Full | Block # # ProxyVia On # 最好为代理服务安装高速缓冲,去掉下面几行的注释符号: # (没有CacheRoot则不缓冲) # # CacheRoot "/usr/local/apache2/proxy" # CacheSize 5 # CacheGcInterval 4 # CacheMaxExpire 24 # CacheLastModifiedFactor 01 # CacheDefaultExpire 1 # NoCache a-domain.com another-domain.edu joes.garage-sale.com # </IfModule> # 代理命令结束。 # # 附加的特定模块配置。 # <IfModule mod_ssl.c> Include conf/ssl.conf </IfModule> ## 第三区:虚拟主机 # # VirtualHost:你可以通过设置虚拟主机容器以实现在你的主机上保有多个 # 域名/主机名。大多数配置信息只使用基于名字的虚拟主机,因此服务器 # 不必担心IP地址的问题,下面的命令以*号代替虚拟主机名。 # # 在你试着配置你的虚拟主机以前,请参见 # URL:http://httpd.apache.org/docs-2.0/vhosts/>以取得更多的信息。 # # 你可以使用命令行选项“-S”来检验你的虚拟主机配置。 # # 使用基于名字的虚拟主机。 # # NameVirtualHost * # # 虚拟主机示例: # 几乎所有的Apache命令都可以在虚拟主机容器中使用。 # 第一个虚拟主机区是用于向服务名未知的请求进行应答的配置。 # # <VirtualHost *> # ServerAdmin webmaster@dummy-host.example.com # DocumentRoot /www/docs/dummy-host.example.com # ServerName dummy-host.example.com # ErrorLog logs/dummy-host.example.com-error_log # CustomLog logs/dummy-host.example.com-access_log commom # </virtualHost>... 全文

休闲 Apache服务器 服务器配置文件 职场

LINUX下的APACHE的配置

今天写一下LINUX下的APACHE的配置方法。APACHE是作为WEB服务器的。它的优点在于用缓存方式来加快网页的搜索速度。APACHE缺省只支持静态网页LINUX下有APACHE的RPM包安装上第一张盘里的httpd-2.0.40-21.i386.rpm 包1 /etc/httpd/conf.d 放在这里的都是动态网页的配置文件2 /etc/httpd/conf/httpd.conf 主配置文件3 /var/log/httpd   日志文件目录。4 /var/www/html 网页的存放目录5 /etc/rc.d/init.d 工具文件目录。6 vi /etc/httpd/conf/httpd.conf    Section 1: Global Environment(全局设置)   ServerRoot "/etc/httpd" (APACHE安装路径)  DirectoryIndex index.html index.html.var (网页首页的第一页) Timeout 300 (超出时间) KeepAlive Off(保持Httpd激活) MaxKeepAliveRequests 100 (保持的连接的人数,改成0就是说没有人数的限制) KeepAliveTimeout 15 (保持激活的超出时间) prefork MPM (预派生模式) worker MPM (工作者模式) Listen 80 (侦听的端口) LoadModule (加载模块)... 全文

linux 配置 Apache 休闲 职场

cacti 配置监控远程主机 配置监控apache、mysql

监控远程主机1.yum install net-snmp2.vim /etc/snmp/snmpd.conf修改的内容如下,没有的请添加,有的前面有注释,将注释去掉即可view    systemview    included  .1proc mountdproc ntalkd 4proc sendmail 10 1disk / 10000load 12 14 143./etc/init.d/snmpd start4./etc/init.d/iptables stop5.setenforce 06.然后在cacti中的device添加主机主机模板选择ucd/net SNMP Host7.添加图形模板和图形... 全文

cacti 远程主机 apache mysql

Apache配置网站详细说明

 Apache配置网站详细说明 一、关于Apache虚拟主机配置网站的几种方法1、基于IP地址的虚拟主机配置      在本机配置两个IP地址,一个为eth0, 一个为eth0:1如下所配置       ifconfig eth0 192.168.100.177 netmask 255.255.255.0       ifconfig eth0:1 192.168.100.48 netmask 255.255.255.0... 全文

Apache 配置网站 ip 虚拟主机 休闲

Apache配置SSL证书服务器傻瓜步骤

在Linux+Apache+OpenSSL中配置SSL安全证书认证是不难的,我的另一篇工作随记中曾提到[url]http://www.host01.com/article/server/00070002/0621409075193649.htm[/url]中有所有步骤,不过其中的一些描述有点复杂,并且依赖关系也没有这些严格。这里给出一个傻瓜式步骤,供自己和有心人复用。首先确保你的Linux有OpenSSL(ls -l /usr/bin/openssl),如果没有请从[url]http://openssl.org/[/url]下载。mkdir demoCA cp /usr/share/ssl/openssl.cnf ./demoCAvi ./demoCA/openssl.cnf and edit the dir configuration of CA_default from ./demoCA to .mkdir demoCA/certs mkdir demoCA/crl mkdir demoCA/newcertsmkdir demoCA/privateecho "01" > demoCA/serialtouch demoCA/index.txtcd demoCAopenssl req -new -x509 -keyout ./private/cakey.pem -out ./cacert.pem -days 3650(password input twice, 该密码多次用到,HTTPD启动也须用到, 10年有效期)Country Name (2 letter code) [GB]:USState or Province Name (full name) [Berkshire]:CALocality Name (eg, city) [Newbury]:San ClaraOrganization Name (eg, company) [My Company Ltd]:CiscoOrganizational Unit Name (eg, section) []:WebExCommon Name (eg, your name or your server's hostname) []:ServerDNSName(最好跟你SERVER名字一样)Email Address []:openssl genrsa -des3 -out server.key 1024openssl req -new -key server.key -out server.csrCountry Name (2 letter code) [GB]:USState or Province Name (full name) [Berkshire]:CALocality Name (eg, city) [Newbury]:San ClaraOrganization Name (eg, company) [My Company Ltd]:CiscoOrganizational Unit Name (eg, section) []:WebExCommon Name (eg, your name or your server's hostname) []:ServerDNSNameEmail Address []:Please enter the following 'extra' attributesto be sent with your certificate requestA challenge password []:An optional company name []:Cisco-WebEx Communication Inc.mv server.csr newreq.pemopenssl ca -config ./openssl.cnf -policy policy_anything -out newcert.pem -infiles newreq.pemmv newcert.pem server.crtvi /etc/httpd/conf.d/ssl.conf并改变以下四行并确保没被注释。SSLCertificateFile /etc/httpd/conf.d/demoCA/server.crtSSLCertificateKeyFile /etc/httpd/conf.d/demoCA/server.keySSLCACertificatePath /etc/httpd/conf.d/demoCASSLCACertificateFile /etc/httpd/conf.d/demoCA/cacert.pem#SSLVerifyClient require#SSLVerifyDepth  10#SSLVerifyClient none(by default) 其中上述第五、六行是为client强制需要安装安全证书的设置。如果需要则需按[url]http://www.host01.com/article/server/00070002/0621409075193649.htm[/url]文章后段所述步骤签发client证书。这里不再赘述。 如果需要第三方签你的根证书,需把你的cacert.pem证书交与第三方认证机构进行签证。 与[url]http://www.host01.com/article/server/00070002/0621409075193649.htm[/url]颇多重叠,只是为了简单起已,给自己提一个醒。本文出自 “守望者的技术日记和六味生活” 博客,请务必保留此出处[url]http://dannyyuan.blog.51cto.com/212520/39088[/url]本文出自 51CTO.COM技术博客... 全文

ssl 配置 Apache 服务器 证书

1 2 3 4 5 6 7 8 9