Apache启动时,会绑定本机上的地址和端口,然后等待请求的进入。默认情况下,它会监听本机的所有地址。但是,当需要监听特定的地址或端口或地址与端口的组合,或者需要对不同的IP地址、主机名、端口作出不同的响应(如使用虚拟主机)时,就必须明确指定。
Listen指令告诉服务器接只受来自特定端口(或地址+端口的组合)的请求。如果Listen指令仅指定了端口,则服务器会监听所有的IP地址;如果指定了地址+端口的组合,则服务器只监听来自此特定地址上特定端口的请求。使用多个Listen指令,可以指定在多个地址和端口上进行监听。
例如:使服务器在所有地址上同时接受来自端口80和8000的请求,可以这样写:
Listen 80
Listen 8000
接受来自两个指定的地址+端口的组合:
Listen 192.170.2.1:80
Listen 192.170.2.5:8000
IPv6地址必须用方括号括起来:
Listen [2001:db8::a00:20ff:fea7:ccea]:80
Listen 指令指令
语法 Listen [IP-address:]portnumber [protocol]
protocol表示协议。
比较完整的例子如
Listen 192.170.2.1:8443 https
VirtualHost指令
语法 <VirtualHost addr[:port] [addr[:port]] ...> ... </VirtualHost>
<VirtualHost>和</VirtualHost>用于封装一组仅作用于特定虚拟主机的指令。任何在虚拟主机配置中可以使用的指令也同样可以在这里使用。当服务器接受了一个特定虚拟主机的文档请求时,它会使用封装在<VirtualHost>配置段中的指令。Addr可以是:
虚拟主机的IP地址
虚拟主机IP地址对应的完整域名
字符"*",仅与"NameVirtualHost *"配合使用以匹配所有的IP地址
字符串"_default_",与基于IP的虚拟主机联用以捕获所有没有匹配的IP地址
示例
<VirtualHost 10.1.2.3>
ServerAdmin webmaster@host.foo.com
DocumentRoot /www/docs/host.foo.com
ServerName host.foo.com
ErrorLog logs/host.foo.com-error_log
TransferLog logs/host.foo.com-access_log
</VirtualHost>
IPv6的地址必须放入方括号中指定,否则作为可选项的端口号将无法确定。一个IPv6的示例如下:
<VirtualHost [2001:db8::a00:20ff:fea7:ccea]>
ServerAdmin webmaster@host.example.com
DocumentRoot /www/docs/host.example.com
ServerName host.example.com
ErrorLog logs/host.example.com-error_log
TransferLog logs/host.example.com-access_log
</VirtualHost>
<VirtualHost>的使用并不影响Apache的监听地址。你需要使用Listen来确保Apache正在监听正确的地址。
另外VirtualHost的地址和端口,必须在主服务的监听范围里面,如果你设置的虚拟主机端口是88,但是主服务程序只监听了81和82端口,那么这个设置无效的。
例子,我的配置中
Listen 80
Listen 81
<VirtualHost 192.168.1.101>
ServerAdmin liyixing1@gmail.com
DocumentRoot E:/www
ServerName liyixing.com
ErrorLog logs/liyixing.com-error_log
TransferLog logs/liyixing.com-access_log
</VirtualHost>
如上监听了两个端口,并且使用了一个虚拟服务器的配置,
http://127.0.0.1/
和http://127.0.0.1:81/
是一样的效果。
而访问地址
http://192.168.1.101/index.html
将进入到虚拟主机上面,这个时候访问的结果是403,所以要看结果从界面是看不出什么的,而应该看
logs/liyixing.com-error_log
和
logs/liyixing.com-access_log
可以发现这个时候请求发送到这个虚拟主机来了。
如果你需要在页面看出区别,则需要把虚拟主机的配置改成
<VirtualHost 192.168.1.101>
ServerAdmin liyixing1@gmail.com
DocumentRoot E:/www
ServerName liyixing.com
ErrorLog logs/liyixing.com-error_log
TransferLog logs/liyixing.com-access_log
Alias /www "E:/www"
<Directory "E:/www">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
allow from all
</Directory>
</VirtualHost>
这样开启查看权限才行。
如果这么配置同时也能通过
http://192.168.1.101/www/
来访问,因为这个时候已经同时开启了一个/www的访问
如果你希望只能通过
http://192.168.1.101
而http://192.168.1.101/www/无效的话,则需要把
Alias /www "E:/www"
这句去掉,也就是改成
<VirtualHost 192.168.1.101>
ServerAdmin liyixing1@gmail.com
DocumentRoot E:/www
ServerName liyixing.com
ErrorLog logs/liyixing.com-error_log
TransferLog logs/liyixing.com-access_log
<Directory "E:/www">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
allow from all
</Directory>
</VirtualHost>
另外这里的
Directory 可以配置在外部,而不是VirtualHost 内部
也就是
<Directory "E:/www">
Options Indexes FollowSymLinks
AllowOverride None
Order deny,allow
allow from all
</Directory>
<VirtualHost 192.168.1.101>
ServerAdmin liyixing1@gmail.com
DocumentRoot E:/www
ServerName liyixing.com
ErrorLog logs/liyixing.com-error_log
TransferLog logs/liyixing.com-access_log
</VirtualHost>
也是可以的,之所以放在VirtualHost 是为了和VirtualHost 主机和目录之间一一对应,来做统一的管理。
分享到:
相关推荐
华为S5700交换机绑定客户端IP、MAC和端口[定义].pdf
这是一款用于H3C交换机进行端口和IP地址绑定的可视化软件。
确定本机的IP和端口,socket只有与某一IP和端口绑定,才能发挥其功能。 b.确定通讯协议:TCP 或 UDP。 编程步骤: a.建立一个套接字 b.绑定本机的IP和端口 c.如果是TCP,因为是面向连接的,要利用Listen()方法来监听...
绑定IP 和 客户端的 UDP 通讯 ,可以建两个相同的工程,互相对发(修改下绑定的IP 和端口) 详细介绍见https://mp.csdn.net/postedit/81352132
Cisco-IP-MAC绑定的交换机设置详解 在Cisco中有以下三种方案可供选择,方案1和方案2实现的功能是一样的,即在...(网卡硬件地址),方案3是在具体的交换机端口上同时绑定特定的主机的MAC地址(网卡硬件地址)和IP地址
绑定mac和ip
关于IP-MAC地址绑定的交换机设置关于IP-MAC地址绑定的交换机设置关于IP-MAC地址绑定的交换机设置关于IP-MAC地址绑定的交换机设置关于IP-MAC地址绑定的交换机设置关于IP-MAC地址绑定的交换机设置关于IP-MAC地址绑定的...
把MAC?0002.3f67.ad98和交换机1口及IP地址(??192.168.1.3?)绑定
linux绑定多个ip
socket调试工具,可以启动服务端绑定特定的ip和端口发送数据给客户端,也可以使用服务端连接特定ip和端口发送数据给服务端,可以随时断开更改功能,
H3CNE交换机端口安全配置(802.1x 端口隔离 端口绑定) 交换机-端口绑定与端口安全
在Cisco catalyst 2950交换机上,通过配置extended ACL来实现端口与IP的绑定。
AM User-bind命令完成IP、MAC地址和端口绑定配置网络管理
Python写的UDP通信程序,先绑定端口然后在循环发送,可以直接运行,带中文注释,方便初学者学习和使用。
禁飞秋默认2425端口,win8和XP的都有。如果想禁其他的就自己该一下就好了。
H3C ip mac 与端口绑定 解决日常端口绑定问题
无线WEP破解密码后对方路由设置关闭DHCP,IP与MAC绑定,MAC过滤的解决办法
linux绑定多个IP的小工具 linux绑定多个IP的小工具 用法 ./linuxip.sh 会提示 例我要在eth0上绑定100个IP ./linuxip.sh 192.168.1.100 100 1 eth0
通过扫描发现内网电脑的IP和MAC地址,并自动生成arp绑定脚本,只需拷贝到各台电脑上做成启动脚本就可实现IP、MAC地址静态绑定。同时提供全能绑定程序,可对windows 98以上所有操作系统做IP、MAC地址绑定。 2、文件...
思科交换机如何实现ip与mac地址绑定