/ 中存储网

Apache服务器如何绑定地址和端口

2014-03-18 16:49:01 来源:kejihao
    启动apache2

    调用命令apache2ctl来启动,而非apache2.它可以简单地用start、stop、restart等参数,也可以使用和apahce2一样的参数。在/etc/init.d/apache2脚本里,也是调用的apahce2ctl.

总览

在文件/etc/apache2/ports.conf里可以看到这行:

Listen 80

它表示监听服务器所有网卡的80端口。

我们也可以在不同网卡上监听不同端口:

Listen 192.0.2.1:80

Listen 192.0.2.5:8000

IPv6

如果要监听IPv6,需要在地址周围使用方括号:

Listen [2001:db8::a00:20ff:fea7:ccea]:80

    为了用最少的socket来同时处理IPv4和IPv6请求,则需要使用IPv4映射的IPv6地址。--enable-v4-mapped配置选 项用于启动这个映射。默认情况下,除了FreeBSD, NetBSD, and OpenBSD,其它平台都默认启用这个选项。

如果只想处理IPv4请求,则在所有的Listen指令上都指定一个IPv4地址:

Listen 0.0.0.0:80

Listen 192.0.2.1:80

协议

    Listen有一个可选的protocol参数。在未指定的情况下,https的默认端口为443,而http为其它的端口。

    这个protocol用来决定哪个模块来处理请求,以及使用AcceptFilter来应用协议相关的优化。

我们只有在响应非标准的端口上时,才需要指定protocol参数。比如:

Listen 192.170.2.1:8443 https

与虚拟主机的协作

Listen指令并不实现Virtual Host,它仅仅告诉主服务器监听哪些地址以及哪些端口,如果没有使用<VirtualHost>指令,服务器会以相同的方式处理所有接受到 的请求。<VirtualHost>指令可以为一个或多个地址或端口指定不同的行为。要使用VirtualHost,服务器必须先监听使用的 地址和端口,否则<VirtualHost>不能被访问。