云联天下首页 |  登陆 |  注册 |  密码找回 |  关于我们 | 加入收藏 
首页技术资料系统/服务器→配置Apache服务器 (三) 【字号: 】 【背景色 杏仁黄 秋叶褐 胭脂红 芥末绿 天蓝 雪青 灰 银河白(默认色)

配置Apache服务器 (三)

网址来源:http://www.kehui.net发布时间: 2002-01-21 18:12:12
  通常连接时,服务器仅仅可以得到客户机的IP地址,如果要想获得客户机的 <br>主机名,以进行日志记录和提供给 CGI程序使用,就需要使用这个 HostnameLookups 选项,将其设置为On打开DNS反查功能。但是这将使服务器对每次客户请求都进行DNS查询,增加了系统开销,使得反应变慢,因此缺省设置为使用Off关闭此选项。关闭选项之后,服务器就不会获得客户机的主机名,而只能使用IP地址来记录客户。



ErrorLog /var/log/httpd-error.log <br>LogLevel warn <br>LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent} "" combined <br>LogFormat "%h %l %u %t "%r" %>s %b" common <br>LogFormat "%{Referer}i -> %U" referer <br>LogFormat "%{User-agent}i" agent <br>#CustomLog /var/log/httpd-access.log common <br>#CustomLog /var/log/httpd-referer.log referer <br>#CustomLog /var/log/httpd-agent.log agent <br>CustomLog /var/log/httpd-access.log combined <br>  <br>  这里定义了系统日志的形式,对于服务器错误记录, 由ErrorLog、 LogLevel 来定义不同的错误日志文件及其记录内容。  <br>  对于系统的访问日志,缺省使用CustomLog参数定义日志的位置,缺省使用 combined 参数指定将所有的访问日志放在一个文件中,然而也可以将不同种类的访问日志放在不同的日志记录文件中,这是通过在 CustomLog中指定不同的记录类型来完成的。common表示普通的对单页面请求访问记录,referer表示每个页面的引用记录,可以看出一个页面中包含的请求数,agent表示对客户机的类型记录,显然可以将现有的combined 定义的设置行注释掉,并使用common、referer和agent作为CustomLog的参数,来为不同种类的日志分别指定日志记录文件。 <br>  显然,LogFormat是用于定义不同类型的日志进行记录时使用的格式, 这里 <br>使用了以%开头的宏定义,以记录不同的内容。 <br>  如果这些参数指定的文件使用的是相对路径,那么就是相对于ServerRoot的 <br>路径。



  ServerSignature On <br>  一些情况下,例如当客户请求的网页并不存在时,服务器将产生错误文档, <br>缺省情况下由于打开了 ServerSignature选项,错误文档的最后一行将包含服务器的名字、Apache的版本等信息。有的管理员更倾向于不对外显示这些信息,就 <br>可以将这个参数设置为Off,或者设置为Email,最后一行将替换为对 ServerAdmin 的Email提示。



 Alias /icons/ "/www/icons/" <br>  Options Indexes MultiViews <br>  AllowOverride None <br>  Order allow,deny <br>  Allow from all



  Alias参数用于将URL与服务器文件系统中的真实位置进行直接映射,一般的 <br>文档将在DocumentRoot 中进行查询,然而使用Alias定义的路径将直接映射到相 <br>应目录下,而不再到DocumentRoot 下面进行查询。因此Alias可以用来映射一些 <br>公用文件的路径,例如保存了各种常用图标的icons路径。这样使得除了使用符号连接之外,文档根目录(DocumentRoot)外的目录也可以通过使用了Alias映射,提供给浏览器访问。 <br>  定义好映射的路径之后,应该需要使用Directory语句设置访问限制。 <br>   <br>  ScriptAlias /cgi-bin/ "/www/cgi-bin/" <br>  AllowOverride None <br>  Options None <br>  Order allow,deny <br>  Allow from all <br>  ScriptAlias也是用于URL路径的映射,但与Alias的不同在于,ScriptAlias 是用于映射CGI程序的路径,这个路径下的文件都被定义为CGI程序,通过执行它们来获得结果,而非由服务器直接返回其内容。缺省情况下CGI程序使用cgi-bin目录作为虚拟路径。



  # Redirect old-URI new-URL <br>  Redirect参数是用来重写URL的,当浏览器访问服务器上的一个已经不存在的资源的时候,服务器返回给浏览器新的URL,告诉浏览器从该URL中获取资源。这主要用于原来存在于服务器上的文档,改变了位置之后,而又希望能使用老URL能访问到,以保持与以前的URL兼容。  



IndexOptions FancyIndexing <br>AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip <br>AddIconByType (TXT,/icons/text.gif) text/* <br>AddIconByType (IMG,/icons/image2.gif) image/* <br>AddIconByType (SND,/icons/sound2.gif) audio/* <br>AddIconByType (VID,/icons/movie.gif) video/* <br>AddIcon /icons/binary.gif .bin .exe <br>AddIcon /icons/binhex.gif .hqx <br>AddIcon /icons/tar.gif .tar <br>AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv <br>AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip <br>AddIcon /icons/a.gif .ps .ai .eps <br>AddIcon /icons/layout.gif .html .shtml .htm .pdf <br>AddIcon /icons/text.gif .txt <br>AddIcon /icons/c.gif .c <br>AddIcon /icons/p.gif .pl .py <br>AddIcon /icons/f.gif .for <br>AddIcon /icons/dvi.gif .dvi <br>AddIcon /icons/uuencoded.gif .uu <br>AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl <br>AddIcon /icons/tex.gif .tex <br>AddIcon /icons/bomb.gif core <br>AddIcon /icons/back.gif .. <br>AddIcon /icons/hand.right.gif README <br>AddIcon /icons/folder.gif ^^DIRECTORY^^ <br>AddIcon /icons/blank.gif ^^BLANKICON^^ <br>DefaultIcon /icons/unknown.gif <br>#AddDescription "GZIP compressed document" .gz <br>#AddDescription "tar archive" .tar <br>#AddDescription "GZIP compressed tar archive" .tgz <br>ReadmeName README <br>HeaderName HEADER <br>IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t <br>  <br>  当一个HTTP请求的URL为一个目录的时候,服务器返回这个目录中的索引文件。但如果一个目录中不存在缺省的索引文件,并且该服务器又许可显示目录文件列表的时候,就会显示出这个目录中的文件列表,为了使得这个文件列表能具有可理解性,而不仅仅是一个简单的列表,就需要前面的这些设置参数。 <br>  如果使用了IndexOptions FancyIndexing选项,可以让服务器产生的目录列 <br>表中针对各种不同类型的文档引用各种图标。而哪种文件使用哪种图标,则使用 <br>下面的 AddIconByEncoding、AddIconByType以及AddIcon来定义,分别依据MIME 的编码、类型以及文件的后缀来判断使用何种图标。如果不能确定文档使用的图标,就使用 DefaultIcon定义的缺省图标。 <br>  同样,使用AddDescription可以为不同类型的文档加入不同的描述。并且, <br>服务器还在目录下,查询使用ReadmeName和HeaderName定义的文件(自动加上 .

html后缀,如果没有发现,再使用.txt后缀进行搜索),如果发现了这些文件, <br>就在文件列表之前首先显示这些文件的内容,以使得普通目录列表具备更大的可 <br>理解性。 <br>  IndexIgnore让服务器在列出文件列表时忽略相应的文件, 这里使用模式配 <br>置的方式定义文件名。



 AddEncoding x-compress Z <br>  AddEncoding x-gzip gz <br>  AddEncoding用于告诉一些使用压缩的MIME类型,这样可以让浏览器进行解压缩操作。



 AddLanguage en .en <br>  AddLanguage fr .fr <br>  AddLanguage de .de <br>  AddLanguage da .da <br>  AddLanguage el .el <br>  AddLanguage it .it <br>  LanguagePriority en fr de <br>  <br>  一个HTML文档可以同时具备多个语言的版本,如对于file1.html文档可以具 <br>备file1.html.en、file1.html.fr 等不同的版本,每个语言后缀必须使用 AddLanguage进行定义。这样服务器可以针对不同国家的客户,通过与浏览器进行协商,发送不同的语言版本。而LanguagePriority 定义不同语言的优先级,以便在浏览器没有特殊要求时,按照顺序使用不同的语言版本回应对file1.html 的请求。 <br>  这个国际化的能力实际的应用并不多。



 #AddType application/x-httpd-php .phtml <br>  #AddType application/x-httpd-php-source .phps <br>  AddType参数可以为特定后缀的文件指定MIME类型,这里的设置将覆盖 mime.types中的设置。



  #AddHandler cgi-script .cgi <br>  AddHandler是用于指定非静态的处理类型,用于定义文档为一个非静态的文 <br>档类型,需要进行处理,再向浏览器返回处理结果。例如上面注释中的设置是将以.cgi结尾的文件设置为cgi-script类型,那么服务器将启动这个CGI程序以进行处理。如果需要在前面AliasScript定义的路径之外执行CGI程序,就需要使用这个参数进行设置,此后以.cgi结尾的文件将被当作CGI程序执行。



  在配置文件、这个目录中的.htaccess以及其上级目录的.htaccess中必须允许执行CGI程序,这需要通过Options ExecCGI参数设定。



 #AddType text/html .shtml <br>  #AddHandler server-parsed .shtml <br>  另外一种动态进行处理的类型为server-parsed,由服务器自身预先分析网页内的标记,将标记更改为正确的HTML标识。由于server-parsed需要对text/html 类型的文档进行处理,因此首先定义了对应的.shtml为text/html类型。 <br>  然而要支持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 <br>  #AddHandler imap-file map <br>  #AddHandler type-map var <br>  上面被注释的AddHandler用于支持Apache服务器的asis、map和var处理能力 <br>。



 # Action media/type /cgi-script/location <br>  # Action handler-name /cgi-script/location <br>  因为Apache内部提供的处理功能有限,因此可以使用Action为服务器定义外 <br>部程序作为可处理的动态文档类型,这些外部程序与标准CGI程序相同,都是对输入的数据处理之后,再输出不同MIME类型的结果。例如要定义一个对特殊后缀wri都先执行wri2txt进行处理操作,再返回结果的操作,可以使用:



 Action windows-writer /bin/wri2txt <br>  AddHandler windows-writer wri <br>  更进一步,可以直接使用Action定义对某个MIME类型预先进行处理操作,这 <br>需要例子中第一种格式的Action 参数设置方式。这样设置方式就不再需要额外的AddHandler用来将处理操作与文件后缀联系起来,而是使用Action直接处理MIME类型的文件。但如果文档后缀没有正式的MIME类型,还需要先定义一个MIME类型。



 #MetaDir .web <br>  #MetaSuffix .meta <br>  Meta信息是在文档发送给客户之前,预先发送给客户浏览器一些数据,因此 <br>浏览器可以通过HEAD请求来访问这些Meta信息而不必真正通过GET来返回全部文档数据。服务器通常发送给浏览器的是一些标准的HTTP头信息,如果要想增加额外的信息,就需要使用MetaDir来定义Meta数据存放的目录, 而MetaS uffix用于指定包含Meta数据的文件后缀。



 #ErrorDocument 500 "The server made a boo boo. <br>  #ErrorDocument 404 /missing.html <br>  #ErrorDocument 404 /cgi-bin/missing_handler.pl <br>  #ErrorDocument 402   <br>  http://some.other_server.com/subscription_info.html <br>  如果客户请求的网页不存在,或者没有访问权限等情况发生时,服务器将产 <br>生一个错误代码,同时也将回应客户浏览器一个标识错误的网页。 <br>  ErrorDocument就用于设置当出现哪个错误时应该回应客户浏览器那些内容,ErrorDocument的第一个参数为错误的序号,第二个参数为回应的数据,可以为简单的文本,本地网页,本地CGI程序,以及远程主机上的网页。



 BrowserMatch "Mozilla/2" nokeepalive <br>  BrowserMatch "MSIE 4.0b2;" nokeepalive downgrade-1.0    force-response-1.0 <br>  BrowserMatch "RealPlayer 4.0" force-response-1.0 <br>  BrowserMatch "Java/1.0" force-response-1.0 <br>  BrowserMatch "JDK/1.0" force-response-1.0 <br>  BrowserMatch命令为特定的客户程序,设置特殊的参数,以保证对老版本浏 <br>览器的兼容性,并支持新浏览器的新特性。



# <br>#  SetHandler server-status <br>#  Order deny,allow <br>#  Deny from all <br>#  Allow from .your_domain.com <br># <br># <br>#  SetHandler server-info <br>#  Order deny,allow <br>#  Deny from all <br>#  Allow from .your_domain.com <br># <br># <br>#  Deny from all <br>#  ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi <br>#



  用于设置访问控制的设置主要是针对目录和文件进行设置的,然而也可以针 <br>对不同的URL进行访问控制的设置,这样就不必担心ScriptAlias、Alias是否将路径设置到了受控制的目录之外了。针对URL进行控制的语句为 Location语句,这样不但能对服务器上的文件、CGI提供保护,此外,它还能保护不能找到对应文件,而是由服务器本身提供的特殊功能URL。http://servername/server-status用于报告当前Apache服务器的状态,http://servername/server-info用于报告Apache 服务器的统计信息。与此相关的设置还有ExtendedStatus参数,可以让服务器输出更详细的的报告。



# <br>#ProxyRequests On <br># <br># <br>#  Order deny,allow <br>#  Deny from all <br>#  Allow from .your_domain.com <br># <br>#ProxyVia On <br>#CacheRoot "/www/proxy" <br>#CacheSize 5 <br>#CacheGcInterval 4 <br>#CacheMaxExpire 24 <br>#CacheLastModifiedFactor 0.1 <br>#CacheDefaultExpire 1 <br>#NoCache a_domain.com another_domain.edu joes.garage_sale.com <br>  <br># <br>  <br>   Apache服务器本身就具备代理的功能,然而这要求加载入mod_proxy模块。这能使用IfModule语句进行判断,如果存在mod_proxy模块,就使用ProxyRequests打开代理支持。此后的Directory用于设置对Proxy功能的访问权限设置,以及用于设置缓冲的各个参数设置。



虚拟主机 <br>#NameVirtualHost 12.34.56.78:80 <br>#NameVirtualHost 12.34.56.78 <br># <br>#  ServerAdmin webmaster@host.some_domain.com <br>#  DocumentRoot /www/docs/host.some_domain.com <br>#  ServerName host.some_domain.com <br>#  ErrorLog logs/host.some_domain.com-error_log <br>#  CustomLog logs/host.some_domain.com-access_log common <br># <br>  <br>#



  缺省设置文件中的这些内容是用于设置命名基础的虚拟主机服务器时使用。 <br>其中NameVirtualHost 来指定虚拟主机使用的IP地址,这个IP地址将对应多个 DNS名字,如果Apache使用了Listen 参数控制了多个端口,那么就可以在这里加上端口号以进一步进行区分对不同端口的不同连接请求。此后,使用 VirtualHost 语句,使用NameVirtualHost指定的IP地址作参数,对每个名字都定义对应的虚拟主机设置。 <br>  虚拟主机是在一台Web服务器上,可以为多个单独域名提供Web服务,并且每个域名都完全独立,包括具有完全独立的文档目录结构及设置,这样域名之间完全独立,不但使用每个域名访问到的内容完全独立,并且使用另一个域名无法访 <br>问其他域名提供的网页内容。 <br>  虚拟主机的概念对于ISP来讲非常有用,因为虽然一个组织可以将自己的网页挂在具备其他域名的服务器上的下级往址上,但使用独立的域名和根网址更为正式,易为众人接受。传统上,必须自己设立一台服务器才能达到单独域名的目的,然而这需要维护一个单独的服务器,很多小单位缺乏足够的维护能力,更为合适的方式是租用别人维护的服务器。ISP也没有必要为一个机构提供一个单独的服务器,完全可以使用虚拟主机能力,使服务器为多个域名提供Web服务,而且不同的服务互不干扰,对外就表现为多个不同的服务器。 <br>  有两种设定虚拟主机的方式,一种是基于HTTP 1.0标准,需要一个具备多IP <br>地址的服务器,再配置DNS 服务器,给每个IP地址以不同的域名,最后才能配置Apache的配置文件,使服务器对不同域名返回不同的Web文档。由于这需要使用额外的IP地址,对每个要提供服务的域名都要使用单独的IP地址,因此这种方式实现起来问题较多。 <br>  可以在一个网络界面上绑定多个IP地址,Linux下需要使用ifconfig的  alias参数来进行这个配置,但此时会影响网络性能。 <br>  HTTP 1.1标准在协议中规定了对浏览器和服务器通信时,服务器能够跟踪浏 <br>览器请求的是哪个主机名字。因此可以利用这个新特性,使用更轻松的方式设定 <br>虚拟主机。这种方式不需要额外的IP地址,但需要新版本的浏览器支持。这种方 <br>式已经成为建立虚拟主机的标准方式。 <br>  要建立非IP基础的虚拟主机,多个域名是不可少的配置,因为每个域名就对 <br>应一个要服务的虚拟主机。因此需要更改DNS服务器的配置,为服务器增加多个C NAME选项,如:



linux IN A   192.168.1.64 <br>vhost1 IN CNAME linux <br>vhost2 IN CNAME linux <br>  <br>  基本的设置选项都是为了linux主机设定的,如果要为vhost1和vhost2设定 <br>虚拟主机,就要使用VirtualHost语句定义不同的选项,在语句中可以使用配置文件前面中的大部分选项,而可以重新定义几乎所有的针对服务器的设置。



NameVirtualHost 192.168.1.64



DocumentRoot /www/data <br>ServerName linux.example.org.cn



DocumentRoot /vhost1 <br>ServerName vhost1.example.org.cn



DocumentRoot /vhost2 <br>ServerName vhost2.example.org.cn



  这里需要注意的是,VirtualHost的参数地址一定要和NameVirtualHost定义 <br>的地址相一致,必须保证所有的值严格一致,Apache服务器才承认这些定义是为这个IP地址定义的虚拟主机。 <br>  此外,定义过NameVirtualHost之后,那么对这个IP地址的访问都被区分不同的虚拟主机进行处理,而对其他IP地址的访问,例如127.0.0.1,才应用前面定义的缺省选项。 <br>

kehui 

相关新闻
v PHP安装攻略:安装配置WEB服务器 2002-01-21 18:12:12
v Apache服务器配置全攻略(八) 2002-01-21 18:12:12
v win下apache做proxy 2002-01-21 18:12:12
v 怎样在Apache上安装MOD_SSL 2002-01-21 18:12:12
v 我所认识的Apache 2002-01-21 18:12:12
v Apache服务器配置全攻略(七) 2002-01-21 18:12:12
v SGI图形工作站下使用Apache做代理服务器实例 2002-01-21 18:12:12
v 详述Apache的配置(一) 2002-01-21 18:12:12
v 配置Apache服务器 (一) 2002-01-21 18:12:12
v Apache服务器配置全攻略(二) 2002-01-21 18:12:12
  最新新闻
智慧家居
智慧家居颠覆传统智能家居
智慧云谷让智能家居变成有智慧的
智慧云谷引领智慧家居新生活
科技改变生活 智慧云谷智慧家居系
智慧家居领航者,智慧云谷助你玩
智能家居如何赢得市场美誉度?
智慧云谷智慧家居:创业者有无限
WiFi智能家居你还在用?这样的智
互联网+助推智能家居产业
智慧云谷为您打造真正的智能家居
智能家居产业需要的不是单品,而
新家如何选择开关?智慧云谷iWis
智能传感器-世界首款“智”为你的
智慧云谷开关智能安防智能空气质
智能开关品牌,如何选择智能开关
秋季干燥,智慧家居温湿度传感器
传感器助力智慧家居 感知爱家
iWiscloud智能触摸开关缔造家居装

  最新帖子
 ※室内空气污染的危害及  [sensor]
 ※超声波风速传感器在生  [sensor]
 ※这么冷清  [gabc111]
 ※手机APP操作有问题  [ssy11407]
 ※智慧云谷智慧家居将在  [cici]
 ※上传下载  [cici]
 ※下载智慧家居  [apple2008]
 ※秋季干燥,智慧家居温  [apple2008]
 ※智慧家居紧扣热点 安全  [apple2008]
 ※办公大楼如何智慧化管  [apple2008]
 ※智慧云谷工业自控的优  [apple2008]
 ※传感器助力智慧家居 感  [apple2008]
 ※智能开关品牌,如何选  [apple2008]
 ※智慧云谷开关智能安防  [apple2008]
 ※没有专业人员,如何安  [apple2008]
 ※烟台智慧云谷董事长任  [apple2008]
 ※互联网+助推智能家居产  [apple2008]
 ※WiFi智能家居你还在用  [apple2008]
 ※智慧云谷智慧家居:创  [apple2008]
 ※智能家居如何赢得市场  [apple2008]
钯碳回收 硝酸银回收 银浆回收 银焊条回收 回收银浆 氯化钯回收 氯化钯回收 氧化钯回收 回收硝酸钯 钯水回收价格 海绵钯回收 钯炭回收价格 回收镀金板 深圳钯碳回收 镇江氯化钯回收 杭州钯浆回收 银浆回收多少钱 回收钯碳公司 硝酸银的价格 那里有回收金 氯化钯回收价格 江苏擦银布回收 硝酸银价格 德州钯粉回收 银铜回收 回收钯粉 回收铂碳催化剂 佛山钯碳回收 金盐回收价格 海绵钯回收 钯碳高价回收 钯回收价格 钯炭回收