绑定(Binding)
--设置Apache监听特定的IP地址和端口
一、概要
当Apache起动后,它默认监听本机所有Ip地址的与Web相关的端口,然而我们可以告诉Apache去监听特定的端口或者只监听特定的IP上的的特定的端口.这个设置经常与需拟主机配合使用,通过配置告诉需拟主机来响应不同的IP地址、域名和端口上的Http请求。
Linsten指令告诉Apache服务器接受特定IP地址的特定端口的Http请求,或所有Ip地址上的特定端口的Http请求,如果Listen后指定了一个特定的端口号,那么apache服务器则监听所有网卡的这个端口.如果Listen指令后也同时设置了IP地址和端口号,那么服务器则监听这个指定的网卡上的端口。可以设置多个Listen指令来指定监听多个IP和端口, 服务器将根据Listen指令设置的Ip地址和端口来响应不同的请求
例如:
如果让服务器接受80和8000端口的请求,使用:
Listen 80
Listen 8000
为了让服务器接受特定网卡上的指定的端口上的请求,使用:
Listen 192.170.2.1:80
Listen 192.170.2.5:8000
IPv6地址需要使用方括号括起来,如:
Listen [2001:db8::a00:fea7:ccea]:80
二、IPv6需要注意的事项
越来越多的平台实现了对IPv6的支持,Apache中APR模块也支持大部分已经实现了IPv6的平台,Apache通过APR指定IPv6的套接字来处理通过IPv6发送来Http请求。
对于Apache管理员来说,使用IPv6也带来了一个问题:IPv6的sccket在处理ipv6的请求时,是否也能同时处理IPv4的请求。大部分平台是允许通过IPv6 socket的IPv4映射Ipv6地址来处理IPv4的请求的,但在FreeBSD,NetBSD和OpenBSD平台上,由于受系统策略的影响,这种IPv4映射Ipv6地址的方式是不允许的。 即使系统默认不允许使用IPv4映射Ipv6地址的方式,我们可以通过设置特定的配置参数来让Apache实现这种技术。
另一方面,在部分平台上比如Linux和Tru64上,只