84 FreeBSD连载:配置Apache服务器(1)( 四 )


#Listen 3000
#Listen 12.34.56.78:80
#BindAddress *
Listen参数可以指定服务器除了监视标准的80端口之外,还监视其他端口的HTTP请求 。由于FreeBSD系统可以同时拥有多个IP地址,因此也可以指定服务器只听取对某个BindAddress的IP地址的HTTP请求 。如果没有配置这一项,则服务器会回应对所有IP的请求 。
即使使用了BindAddress参数,使得服务器只回应对一个IP地址的请求,但是通过使用扩展的Listen参数,仍然可以让HTTP守护进程回应对其他IP地址的请求 。此时Listen参数的用法与上面的第二个例子相同 。这种比较复杂的用法主要用于设置虚拟主机 。此后可以用VirtualHost参数定义对不同IP的虚拟主机,然而这种用法是较早的HTTP 1.0标准中设置虚拟主机的方法,每针对一个虚拟主机就需要一个IP地址,实际上用处并不大 。在HTTP 1.1中,增加了对单IP地址多域名的虚拟主机的支持,使得虚拟主机的设置具备更大的意义 。
LoadModule mime_magic_modulelibexec/apache/mod_mime_magic.soLoadModule info_modulelibexec/apache/mod_info.soLoadModule speling_modulelibexec/apache/mod_speling.soLoadModule proxy_modulelibexec/apache/libproxy.soLoadModule rewrite_modulelibexec/apache/mod_rewrite.soLoadModule anon_auth_modulelibexec/apache/mod_auth_anon.soLoadModule db_auth_modulelibexec/apache/mod_auth_db.soLoadModule digest_modulelibexec/apache/mod_digest.soLoadModule cern_meta_modulelibexec/apache/mod_cern_meta.soLoadModule expires_modulelibexec/apache/mod_expires.soLoadModule headers_modulelibexec/apache/mod_headers.soLoadModule usertrack_modulelibexec/apache/mod_usertrack.soLoadModule unique_id_modulelibexec/apache/mod_unique_id.so ClearModuleListAddModule mod_env.cAddModule mod_log_config.cAddModule mod_mime_magic.cAddModule mod_mime.cAddModule mod_negotiation.cAddModule mod_status.cAddModule mod_info.cAddModule mod_include.cAddModule mod_autoindex.cAddModule mod_dir.cAddModule mod_cgi.cAddModule mod_asis.cAddModule mod_imap.cAddModule mod_actions.cAddModule mod_speling.cAddModule mod_userdir.cAddModule mod_proxy.cAddModule mod_alias.cAddModule mod_rewrite.cAddModule mod_access.cAddModule mod_auth.cAddModule mod_auth_anon.cAddModule mod_auth_db.cAddModule mod_digest.cAddModule mod_cern_meta.cAddModule mod_expires.cAddModule mod_headers.cAddModule mod_usertrack.cAddModule mod_unique_id.cAddModule mod_so.cAddModule mod_setenvif.cApache服务器的一个重要特性就是其模块化的结构,这不但表现为其能在编译时能通过新的模块加入新的功能,还表现为其模块可以动态加载入http服务程序中,而不必载入不需要的模块 。使用Apache的动态加载模块只需要设置好LoadModule和AddModule参数就可以了,这种特性就是Apache的DSO(Dynamic Shared Object)特性,然而要想充分使用DSO特性仍然不是一个简单的事情,不适当的改动这里的设置就可能造成服务器不能正常启动 。因此如果不是要增加或减少服务器提供的功能,就不要改动这里的设置 。
上面这些列表就显示了FreeBSD下的缺省Apache服务器支持的模块,事实上很多模块是没有必要的,不必要模块不会被载入内存 。模块可以静态连接到Apache服务器内部,也可以这样动态加载,将Apache的特性都编译成动态可加载模块是该Port的做法,而不是Apache的缺省做法,这样就以牺牲很小的性能的同时,带来极大的灵活性 。
因而动态可加载的能力还是对性能有轻微的影响,因此可以重新编译Apache,将自己所需要的功能编译进Apache服务器内部,可以让系统显得更为干净,效率也有轻微的提高 。通常仅仅为了这一个目的就重新编译Apache是没有必要的,如果需要增加其他特性而重新编译Apache,不妨在增加其他模块的同时将所有的模块都静态连接入Apache服务器 。有的使用者更喜欢动态加载模块,那么也不妨全部都使用动态加载模块 。

推荐阅读