3.8 一个完整的httpd.conf文件
httpd.conf文件是Apache服务器的主要配置文件,安装完毕后一般位于/etc/httpd/conf目录下。这个配置文件是一个标准的Linux配置文件,文件中行首带“#”符号的行是注释行。这些注释行对服务器软件来说是没有意义的,但是可以为网络管理员提供文档说明。管理员可以添加任意注释,服务器分析httpd.conf文件时将忽略所有的注释行。
除了注释行和空行,服务器认为其他所有行要么是一个完整命令,要么是一个命令的一部分。对于服务器来说,一个directive就是一个命令,它告诉服务器以某种特定的方式完成某一项特定的任务。下面给出一个完整的httpd.conf文件的示例。为了使读者对httpd.conf文件的配置更加清楚,笔者把该文件中的英文注释去掉,添加了中文注释。
3.8.1 全局环境的设置
全局环境用于设置Apache的一些基本信息,如服务器根目录、超时时间、文档根目录等。如果用户对这些指令不是很清楚,可参考其他书籍了解其详细功能和用法。
//基于NCSA的服务器配置文件,由Rob McCool编写 //这是Apache服务器的主配置文件。包含了告诉服务器进行何种操作的配置指令 //可以访问www.apache.org获得更多详细信息 //不要只简单地阅读这些指令,一定要加以理解。如果你不确定,应该到网上咨询。 ////// 第一部分:全局环境 // // 本部分的指令将影响Apache的全局操作 // 例如Apache能够支持的并行请求数目等。 // //控制了Server回送给客户端的回应头域是否包含关于服务器OS类型和编译进的模块描述信息 ServerTokens OS // // 服务器配置文件、错误显示文件和日志文件等根目录 // 不要在目录最后面加斜线“/” // ServerRoot "/etc/httpd" //保存服务器内部的处理信息,httpd使用ScoreBoardFile来维护进程的内部数据,因此通 //常不需要改变这个参数,除非管理员想在一台计算机上运行几个Apache服务器,这时每 //个Apache服务器都需要独立地设置文件htt pd.conf,并使用不同的 //ScoreBoardFile,ScoreBoardFile run/httpd.scoreboard // //Apache启动时,服务器将把所有进程ID号保存在PidFile指令指定的文件中。 // PidFile run/httpd.pid // // 服务器的超时设置,表示对于某些事件,服务器在断定请求失败前等待的时间 // Timeout 300 //启用HTTP持续作用,设置是否允许永久连接 KeepAlive Off // //MaxKeepAliveRequests指令限制了当启用KeepAlive时,每连接允许的请求数量。 //如果将此值设为"0",将不限制请求的数目。我们建议最好将此值设为一个比较大的值, //以确保最优的服务器性能。 MaxKeepAliveRequests 100 // // Apache在关闭连接前等待下一次请求的时间。一旦收到一个请求, // 超时值将会被设置为Timeout指令指定的值。 // KeepAliveTimeout 15 // //常规Server-Pool服务器池的大小(每分钟M数) // //封装指令并根据指定的模块是否存在为条件来决定是否进行处理 //选择prefork MPM来实施基于流程的Web服务器。虽然基于流程的服务器 //有一些速度较慢的性能,它们通过模块来提供稳定性和兼容性,这些模块不支持线程。 //为了改进性能,服务器的父流程创建(fork)多个子流程并使它们能够用于应答请求。当接收 //到请求时,服务器把其分配给子流程。如果没有子流程可用,服务器创建新的子流程并 //把它添加到库中。但是,子流程的创建会导致延迟。当配置这一MPM时,管理员可以 //限制启动时可以创建的子流程数、最大的子流程数等。这一MPM有利于形成一个稳定的 //Apache服务器,但同时会影响性能和占用内存,因为单个流程的大小会占很大一部分。 <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 MaxClients 150 MaxRequestsPerChild 1000 </IfModule> //每个服务进程的最大请求数 <IfModule worker.c> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule> //每个子进程的最大请求数 <IfModule perchild.c> NumServers 5 StartThreads 5 MinSpareThreads 5 MaxSpareThreads 10 MaxThreadsPerChild 20 MaxRequestsPerChild 0 </IfModule> //指定服务器侦听的特定的IP地址或端口号。 //Listen 12.34.56.78:80 Listen 80 //新版的Apache将各种模块会用到的组件集中放在/etc/httpd/conf.d 文件中, //例如:mod_perl、mod_ssl、mod_php......等,因此在用Include指令指示 //将其他配置文件引用到当前配置文件 Include conf.d/*.conf
3.8.2 动态共享对象支持DSO的设置
为了能够使用模块功能,模块通常以DSO(Dynamic Shared Object)的方式构建,用户应该在httpd.conf文件中使用LoadModule指令,使得能够在使用前获得模块的功能。静态编译模块(在httpd-1中所列举的)不要在此装载。
# # Dynamic Shared Object(DSO)Support # # To be able to use the functionality of a module which was built as a DSO # you have to place corresponding 'LoadModule' lines at this location so the # directives contained in it are actually available _before_ they are used. # Statically compiled modules(those listed by 'httpd -l')do not need # to be loaded here. # # Example: # LoadModule foo_module modules/mod_foo.so # LoadModule access_module modules/mod_access.so LoadModule auth_module modules/mod_auth.so LoadModule auth_anon_module modules/mod_auth_anon.so LoadModule auth_dbm_module modules/mod_auth_dbm.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule include_module modules/mod_include.so LoadModule log_config_module modules/mod_log_config.so LoadModule env_module modules/mod_env.so LoadModule mime_magic_module modules/mod_mime_magic.so LoadModule cern_meta_module modules/mod_cern_meta.so LoadModule expires_module modules/mod_expires.so LoadModule headers_module modules/mod_headers.so LoadModule usertrack_module modules/mod_usertrack.so LoadModule unique_id_module modules/mod_unique_id.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule mime_module modules/mod_mime.so LoadModule dav_module modules/mod_dav.so LoadModule status_module modules/mod_status.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule asis_module modules/mod_asis.so LoadModule info_module modules/mod_info.so 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 imap_module modules/mod_imap.so LoadModule actions_module modules/mod_actions.so LoadModule speling_module modules/mod_speling.so LoadModule userdir_module modules/mod_userdir.so LoadModule alias_module modules/mod_alias.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_connect_module modules/mod_proxy_connect.so <IfModule prefork.c> LoadModule cgi_module modules/mod_cgi.so </IfModule> <IfModule worker.c> LoadModule cgid_module modules/mod_cgid.so </IfModule> //扩展状态控制Apache是否产生完整的状态信息(设为on产生全部),如果设为Off //则产生基本的信息,当与server-status头有关,默认值为Off //ExtendedStatus On
3.8.3 主服务器设置
“主”服务器设置主要设置服务器的文档目录、用户名及其组、管理员邮箱等。
//第二部分 //本节中指令的设置值,将被主服务所使用,主服务响应那些没有被<VirtualHost>所处理的请求, //这些值也为<VirtualHost>容器提供了默认值,你可以在后面的文件中定义。 //若你想使httpd以不同的用户或组运行,首先你必须用root账户运行httpd,然后httpd将 //会切换用户。设置运行httpd的用户或组。 // User apache Group apache // //ServerAdmin:邮箱地址,当系统故障时,可以给用户发E-mail。此地址出现在那些 //由服务器生成的页面上,如出错文档。例如:admin@ict.ac.cn // ServerAdmin admin@ict.ac.cn // ServerNaem定义了server名称和端口号,用以标明自己的身份。通常可以自动定义, //建议显式地定义,避免起动时出错. //如果没有正确定义主机的DNS,服务器产生的重定向将不会工作,同时参考 //UseCanonicalName指令。 //ServerName ict.ac.cn:80 //如果没有注册DNS名字,请在这里输入IP地址。可以在任何情况下使用IP地址,这也使用得重定 //向变得敏感 // UseCanonicalName:决定Apaceh如何构建自定参考URL,并且SERVER_NAME及 //SERVER_PORT变量当设为Off时,Apache将使用客户端给出的域名和端口。 //当设为On时,Apache将使用ServerName指令 UseCanonicalName Off //DocumentRoot:服务器文档放置目录。在默认情况下,所有的请求都从这里开始, //除了记号和别名将改指它处以外。 DocumentRoot "/var/www/html" // //每个可供Apache访问的目录,可以配置成允许或禁止哪些服务和特征(包括其子目录) //首先,我们定义一个默认的非常严格的配置 // <Directory /> Options FollowSymLinks AllowOverride None </Directory> //注意,从这一点向前,你必须许可某些特殊的功能,所以如果某些功能未能如你所愿, //要确保你在在下述中启用了该功能。 //这将改变你对DocumentRoot的设置 <Directory "/var/www/html"> //可能的值为None,All或者任意组合 //索引包括FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews //注意MultiViews被显式地Options All, //选项指令既复杂又重要,http://httpd.apache.org/docs-2.0/mod/core.html //options //可了解更多详情。 // Options Indexes FollowSymLinks // AllowOverride 控制什么指令能够加入到.htaccess中,可以是All,None,或者组合关键字 AllowOverride None // //控制谁可以访问此服务 // Order allow,deny Allow from all </Directory> //使根目录的aotoindex参数不可用,若没有其他索引文件, //默认的Welcome页面将被显示。 <LocationMatch "^/$> Options -Indexes ErrorDocument 403 /error/noindex.html </LocationMatch> //UserDir: 用户的home的名称,当接到~user的请求时。 //请小心正确使用”/”. 在WinNT上,”Personal/My Website”是更合适的选择 // See also: http://httpd.apache.org/docs/misc/FAQ.html//forbidden // <IfModule mod_userdir.c> //默认情况下UserDir是被禁止的,确保用户的系统目录不能访问 UserDir disable //为允许请求/'user目录作为用户公共网页目录,可以删除上面的UserDir disable语句,同 //时去掉下面语句的注释。 //UserDir public_html </IfModule> //控制UserDir目录,以下是一个例子,这个目录是只读的 #<Directory /home/*/public_html> # AllowOverride FileInfo AuthConfig Limit # Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec # <Limit GET POST OPTIONS> # Order allow,deny # Allow from all # </Limit> # <LimitExcept GET POST OPTIONS> # Order deny,allow # Deny from all # </LimitExcept> #</Directory> # //DirectoryIndex: Apache服务器将要以一个目录的形式响应服务 //index.html变量文件(一种映射)将直接传送内容。MultiViews //选项可以用于同样的目的,但是要慢得多。 DirectoryIndex index.html index.html.var // AccessFileName: 用来查找各个目录下额外配置指令的配置文件名, //同时参考AllowOverride(允许重载)指令 AccessFileName .htaccess //下面两行,阻止Web客户端访问 .htaccess和htpasswd(访问设定和密码)的文件 // <Files ~ "^\.ht"> Order allow,deny Deny from all </Files> // TypesConfig,描述在何处找到mime类别 // TypesConfig /etc/mime.types //如果服务器不能确定文档的类型,将使用默认的MIME类型,例如根据扩展名 //如果你的服务器主要包括text/html文档,”text/plain”就是一个好的取值。 //如果你的大多数内容是binary(二进制)的,如应用程序或图片,你可能希望使用 //application/octet-stream,使得浏览器试图显示二进制数据,尽管它们是文本。 DefaultType text/plain
3.8.4 设置日志管理
这部分设置一些与日志有关的配置,以及一些对客户的控制。
//mod_mime_magic模块,允许服务器根据内容提示来识别文件类型。 //MIMEMagicFile指令告知模块“内容提示”应到何处找。 <IfModule mod_mime_magic.c> // MIMEMagicFile /usr/share/magic.mime MIMEMagicFile conf/magic </IfModule> //HostNameLookups: 客户日志或者仅其IP地址,如www.apache.org(on)或者 //204.62.129.132(off).默认值设为off比较好,如果希望将此置为on将意味着 //第一次客户请求都至少要查询一次nameserver. // HostnameLookups Off // EnableSendfile: 控制内核传送文件是否支持(需要OS支持)。 //默认为on,如果使用NFS,则使用off //EnableSendfile off //ErrorLog: 出错日志文件如果你想为虚拟主机定义Errorlog指令, //则该虚拟主机的错误信息将被记录到这里 ErrorLog logs/error_log //LogLever: 日志等级,决定哪些级别的出错信息将被记录, 可能的值有ebug, 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 //访问日志文件的位置及格式 //如果不在<VirtualHost>容器中定义任何日志文件,日志将会写到这里。 //否则,如果定义了日志文件,事务将被写到相应文件中。 // CustomLog logs/access_log common CustomLog logs/access_log combined //若希望有代理和引用日志文件,去掉下面的注释。 //CustomLog logs/referer_log referer //CustomLog logs/agent_log agent //如果你喜欢用一个文件做访问、代理和引用信息的日志,你可以使用下面的指令。 // //CustomLog logs/access_log combined //可以加一行用以包含服务器版本和虚拟主机名称 // ServerSignature On
3.8.5 设置虚拟目录
虚拟目录是相对于Apache主目录的相对路径或绝对路径的别名。虚拟目录的设置有利于方便用户在编写网页或cgi程序时对文件的引用。有了虚拟目录,访问某个目录深度很深的文件时可以用一个简短的虚拟目录名代替其目录名。
//别名:这里可以无限制地增加你所需要的别名。 //别名的格式是:Alias 别名 真实名称 Alias /icons/ "/var/www/icons/" //对该虚拟目录设置 <Directory "/var/www/icons"> Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all </Directory> // This should be changed to the ServerRoot/manual/. The alias provides // the manual, even if you choose to move your DocumentRoot. You may comment // this out if you do not care for the documentation. //对使用手册文件所在目录定义虚拟目录 Alias /manual "/var/www/manual" //设置该虚拟目录的属性 <Directory "/var/www/manual"> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all </Directory> <IfModule mod_dav_fs.c> // Location of the WebDAV lock database. DAVLockDB /var/lib/dav/lockdb </IfModule> //ScriptAlias 指令与 Alias 指令相同,只不过它还标记该目录包含 //CGI或PHP指令文件(即执行文件,如PHP解释执行文件) // ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" <IfModule mod_cgid.c> //除了mod_cgid.c设置外,mod_cgid还可以为UNIX socket通信设置cgid。 Scriptsock run/httpd.cgid </IfModule> // //设置cgi-bin目录的属性 // <Directory "/var/www/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> //对用户请求的文档进行重定向,告知用户到哪里获取新的文档。 IndexOptions FancyIndexing VersionSort NameWidth=* # # AddIcon* directives tell the server which icon to show for different # files or filename extensions. These are only displayed for # FancyIndexed directories.
3.8.6 设置MIME类型
设置MIME类型就是使Apache能够识别的文件类型。除了从文件的后缀出发来判断文件的MIME类型之外,Apache还可以进一步分析文件的一些特征,来判断文件的真实MIME类型。这个功能是由mod_mime_magic模块实现的,它需要一个记录各种MIME类型特征的文件,以进行分析判断。上面的设置是一个条件语句,如果载入了这个模块,就必须指定相应的标志文件magic的位置。
# 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指令允许你对服务器文件给出一个更短的描述。 #AddDescription "GZIP compressed document" .gz #AddDescription "tar archive" .tar #AddDescription "GZIP compressed tar archive" .tgz
3.8.7 文档管理和语言管理
本部分定义各种Readme文档、错误信息文档等对应的HTML文件,以及给Apache增加支持的语言。
// 指明Readme文件的文件名 ReadmeName README.html HeaderName HEADER.html // IndexIgnore指令为一组忽略的文件,可以使用通配符 IndexIgnore .??* *~ *// HEADER* README* RCS CVS *,v *,t // AddEncoding指令允许你用特定浏览器时能解压缩特定的文件类型 AddEncoding x-compress Z AddEncoding x-gzip gz tgz // DefaultLanguage指示网页显示的默认语言。 // AddLanguage指令允许你指定特定文档的特定语言。 # DefaultLanguage nl # //加入语言支持 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 kr .kr 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 .se 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 kr no pl pt pt-br ltz ca es sv tw // ForceLanguagePriority指令允许你在没有语言匹配时提供一个结果页面,而不是 //一组页面 ForceLanguagePriority Prefer Fallback //指定默认字符集 AddDefaultCharset ISO-8859-1 //常用字符集的扩展文件名 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 // For russian, more than one charset is used(depends on client, mostly): 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 //下面字符集不是标准,但是广泛使用 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配置文件的mime类型。 AddType application/x-tar .tgz // AddHandler指令允许你为特定扩展文件名映射到特定处理 //AddHandler cgi-script .cgi // //带HTTP头的文件 //AddHandler send-as-is asis // // For server-parsed imagemap files: //处理服务器端解析的imagemap文件 AddHandler imap-file map AddHandler type-map var // AddOutputFilter指令指示服务器端执行的文件扩展名 // AddOutputFilter INCLUDES .shtml // Action指令允许你定义当文件匹配时执行的脚本。 // 格式: Action media/type /cgi-script/location // 格式: Action handler-name /cgi-script/location // //配置错误响应 // 例如: #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/include/ "/your/include/path/" # //增加自己的错误显示文件 Alias /error/ "/var/www/error/" <IfModule mod_negotiation.c> <IfModule mod_include.c> <Directory "/var/www/error"> AllowOverride None Options IncludesNoExec AddOutputFilter Includes html ler type-map var Order allow,deny Allow from all LanguagePriority en es de fr ForceLanguagePriority Prefer Fallback </Directory> //下面是各种错误发生时将显示的错误页面文件名 ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var 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 </IfModule> </IfModule> //下面指令改变正常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 //下面指令禁止重定向 // BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect- carefully BrowserMatch "^WebDrive" redirect-carefully //允许服务器状态报告 // #<Location /server-status> # SetHandler server-status # Order deny,allow # Deny from all # Allow from .your-domain.com #</Location> //允许远程服务器配置报告。 // #<Location /server-info> # SetHandler server-info # Order deny,allow # Deny from all # Allow from .your-domain.com #</Location> //代理服务器设置,如果想启用代理服务器,去掉下面的注释 #<IfModule mod_proxy.c> #ProxyRequests On # #<Proxy *> # Order deny,allow # Deny from all # Allow from .your-domain.com #</Proxy> //允许或禁止处理HTTP/1.1。 # Set to one of: Off | On | Full | Block # #ProxyVia On //允许缓存 # #CacheRoot "/etc/httpd/proxy" #CacheSize 5 #CacheGcInterval 4 #CacheMaxExpire 24 #CacheLastModifiedFactor 0.1 #CacheDefaultExpire 1 #NoCache a-domain.com another-domain.edu joes.garage-sale.com #</IfModule> # End of proxy directives.
3.8.8 设置虚拟主机
设置虚拟主机可以允许一台物理机器上允许多个Apache服务器。
// 第三部分:虚拟主机 // //虚拟主机:有两种方法在Apache服务器上设置虚拟主机。可以使用一个IP //地址对应一个CNAME(Computer Name)的方法,也可以一个IP地址对应 //多个CNAME。Apache有不同的指令集处理这些选项的每一种。 //基于用户名的虚拟主机 // #NameVirtualHost * // //虚拟主机举例。 // #<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 common #</VirtualHost>