关于Apache中 ServerName&UseCanonicalName的问题

说明配置服务器如何确定它自己的域名
语法UseCanonicalName On|Off|DNS
默认值UseCanonicalName Off
作用域server config, virtual host, directory
状态核心(C)
模块core

在很多情况下,Apache必须构造一个自引用URL(即一个指回相同服务器的URL)。使用 UseCanonicalName On 会将ServerName这个域名用于所有自引用URL、SERVER_NAME、CGI中的SERVER_PORT 。

设置为 UseCanonicalName Off 时,如果客户端提供了主机名和端口(否则将如上所述使用标准域名),Apache将会使用这些信息来构建自引用URL。这些值与用于实现基于域名的虚拟主机的值相同,并且对于同样的客户端可用。CGI变量SERVER_NAMESERVER_PORT也会由客户端提供的值来构建。

用这样的方式成功解决问题的例子如下:在一个局域网内,您想让连接主机的用户使用诸如www这样的短域名进行访问。您会注意到,如果用户键入了类似http://www/splat这样的短域名和目录的URL,并且没有最后的斜线,Apache会将他们重定向到http://www.domain.com/splat/。如果您在这个目录上启用了身份验证,这会导致用户必须进行两次验证:一次针对www而另外一次针对www.domain.com(参见关于此主题的FAQ获得更多信息)。但如果UseCanonicalName设为 Off ,Apache就会重定向到http://www/splat/

第三个可选项是 UseCanonicalName DNS ,用于为大量基于IP的虚拟主机支持那些古董级的不提供"Host:"头的浏览器使用。使用这个选项时,Apache将对客户端连入的服务器的IP地址进行反向DNS查询,以构建自引用URL。

警告

如果CGI对SERVER_NAME的值作出了假定,它们会被此选项破坏。客户端对于给出它们想要的主机名这样的行动是完全不受限制的。但如果CGI仅使用SERVER_NAME来构建自引用的URL,它们会工作的很好。

 

 

 

ServerName指定Apache用于识别自身的名字和端口号。
# 通常这个值是自动指定的,但是我们推荐你显式的指定它以防止启动时出错
#
# 如果你为你的主机指定了一个无效的DNS名,server-generated重定向将不能工作。
# 参见UseCanonicalName指令
#
# 如果你的主机没有注册DNS名,在这里键入它的IP地址
# 无论如何,你必须使用它的IP地址来提供服务,
# 这里使用一种容易理解的方式重定向服务
ServerName www.dalouis.com:80

#
# UseCanonicalName:决定Apache如何构造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。
# 当设置为 “Off”时,Apache会使用用户端提供的主机名和端口号。
# 当设置为“On”,Apache会使用ServerName指令的值。
#
UseCanonicalName Off

转载于:https://my.oschina.net/leozhou/blog/755898

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值