Apache中的ServerName指令
Apache中的ServerName指令(默认在配置文件的142行左右)设置了服务器用于辨识自己的主机名和端口号。就是说它后面的值是机器自己的主机名,可以带端口号。这主要用于创建重定向URL。比如,一个放置web服务器的主机名为simple.example.com ,但同时有一个DNS别名www.example.com 。而您希望web服务器更显著一点,您可以使用如下的指令:
ServerName www.example.com:80
当没有指定ServerName时,服务器会尝试对IP地址进行反向查询来推断主机名。如果在ServerName中没有指定端口号,服务器会使用接受请求的那个端口。为了加强可靠性和可预测性,您应该使用ServerName显式的指定一个主机名和端口号。
这里的ServerName是全局的。
在<VirtualHost>段中的ServerName将是为了匹配这个虚拟主机。在这种情况下,配置文件中的 VirtualHost 指令将为每个虚拟主机配置不同的 serveradmin, servername, documentroot, errorlog, transferlog, customlog等参数。例如:
NameVirtualHost 172.20.30.40:80
NameVirtualHost 192.168.111.2:8080
<VirtualHost 172.20.30.40:80>
ServerAdmin webmaster@mail.smallco.com
DocumentRoot /groups/smallco/www
ServerName www.smallco.com
ErrorLog /groups/smallco/logs/error_log
TransferLog /groups/smallco/logs/access_log
</VirtualHost>
<VirtualHost 192.168.111.2:8080>
ServerAdmin webmaster@mail.baygroup.org
DocumentRoot /groups/baygroup/www
ServerName www.baygroup.org
ErrorLog /groups/baygroup/logs/error_log
TransferLog /groups/baygroup/logs/access_log
</VirtualHost>
VirtualHost的参数必须与NameVirtualHost的参数相符。
“ServerName www.smallco.com”就是虚拟主机的主机名,它将指向 172.20.30.40:80,前提是你在你域名的DNS中指定了该域名指向 172.20.30.40 。由于它在VirtualHost指令内(不同于全局ServerName),所以“虚拟主机(VirtualHost)”一词因此而来。
同样的,“ServerName www.baygroup.org”指向 192.168.111.2:8080 ,前提是你在你域名的DNS中指定了该域名指向 192.168.111.2 。
所以“ServerName”就是主机名。
印第安
2007年12月25日9:34:47
转载于:https://blog.51cto.com/indian/1057162