apache+设置主机头,同一端口绑定多个域名和网站

一台服务器安装了APACHE,如何绑定多个域名和网站内容呢?最简单的方法当然就是不同的站用不同的端口。但这样就需在域名后加入端口号才能访问,不能直接以域名访问。另一个方法就是使用主机头名虚所主机了。打开APACHE配置文件httpd.conf 在最后一行输入以下代码

NameVirtualHost *:80 #使用虚拟主机,80端口
<VirtualHost *:80> #第一个主机,80端口
DocumentRoot “D:/root/abc” #指向本地位置
ServerName www.abc.com #主机名称(注意这个很重要,就是你的域名,准确输入才能成功)
</VirtualHost> #结束第一个主机配置
<VirtualHost *:80> #第二个主机,80端口
DocumentRoot “D:/root/def” #指向本地位置
ServerName www.def.com #主机名称
</VirtualHost>
<VirtualHost *:80> #第三个主机,80端口
DocumentRoot “D:/root/ghi” #指向本地位置
ServerName www.ghi.com #主机名称
</VirtualHost>

如此类推,只要你的机性能好,带宽够,多挂几个都可以

Aapche 如果需要绑定多个域名到一个IP上,是支持的。需要注意以下2点:

1 必须要开启 NameVirtualHost开关选项,

如:NameVirtualHost 220.231.220.231:80

2 NameVirtualHost 需要指定具体的端口

例如":80",跟<VirtualHost 220.231.32.*:80>对应,否则会报错:

mixing * ports and non-* ports with a NameVirtualHost address is not supported, proceeding with undefined results。

翻译过来就是: NameVirtualHost 地址,指定端口和不指定端口混合使用是不支持的,将会产生未逾期的后果。

未逾期的后果就是: 第2个不起作用,仅当一个站点设置起作用。

完整的例子:

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
NameVirtualHost 219.133.61.226:80

<VirtualHost 219.133.61.226:80>
ServerAdmin [email protected]
DocumentRoot /usr/local/apache2/htdocs1
ServerName www.linux51.com
ErrorLog logs/linux51.com-error_log
CustomLog logs/linux51.com-access_log common
</VirtualHost>

<VirtualHost 219.133.61.226:80>
ServerAdmin [email protected]
DocumentRoot /usr/local/apache2/htdocs2
ServerName www.linux52.com
ErrorLog logs/linux52.com-error_log
CustomLog logs/linux52.com-access_log common
</VirtualHost>

 

此文从百度文库转载

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。