httpd中什么是虚拟主机???
虚拟主机是在一台www服务器上为多个单独的域名提供www服务,每个域名具有自己的目录和配置,相当于将一台主机分为多台主机,虚拟主机技术对于主机数量不足,但又想为不同的用户提供独立的Web服务的需求非常有效。而对于一个公司,利用价格昂贵的服务器只提供一种域名服务,似乎是不明智的,而现在越来越多的公司喜欢在一台服务器上使用多个域名服务,架设不同的网站,这样做的好处是显而易见。
Apache有两种方式支持虚拟主机,一种是基于IP的虚拟主机,另一种是基于名字的虚拟主机。基于名字的虚拟主机使用相同的IP地址来配置不同的虚拟主机,这就弥补了因IP地址不足而带来的问题。基于名字的虚拟主机的配置相当简单,你只需配置你得DNS服务器使每个主机名对应正确的IP地址,然后再配置Apache HTTP Server使它能认识不同的主机名就可以了。
假设我们组建了一家多媒体制作公司,有一台Apache服务器和一个IP地址:192.168.0.1 要运行两种业务,一种为电子商务网站,域名为 ,另一种为教学网站,域名为 。先在DNS服务器中把域名和www.teachin....conf就可以了。
NameVirtualHost 192.168.0.1
ServerName
DocumentRoot /var/www/html/business
ServerName
DocumentRoot /var/www/html/teaching
而基于IP的虚拟主机则要求使用不同的IP地址来区别不同的虚拟主机,这就要求使用多块网卡,把不同的IP地址捆绑到不同的网卡上,或者在一块网卡上捆绑多个IP地址。假设我们主机的IP地址为192.168.0.1(),另外有两个IP地址别?..nf/httpd.conf。[/url]
ServerAdmin webmaster@
DocumentRoot /var/www/html/business
ServerName
ErrorLog /var/www/html/business/logs/error_log
TransferLog /var/www/html/business/logs/ess_log
ServerAdmin webmaster@
DocumentRoot /var/www/html/teaching
ServerName
ErrorLog /var/www/html/teaching/logs/error_log
TransferLog /var/www/html/teaching/logs/ess_log
注意域名不同!!
怎么配置apache虚拟主机
给你一个 apache详细的配置文档 /tag/apache-2
你只要
<VirtualHost *:80>
ServerName localhost
。。。。。
</VirtualHost>
<VirtualHost *:80>
ServerName 127.0.0.1
。。。。。
</VirtualHost>
这样也可以实现你要的效果,方法有很多
如何配置 Apache 的虚拟主机
首先修改hosts 文件:(具体步骤如下)
不管用的是什么系统,windows, mac,电脑上都会有一个 hosts 文件,修改这个文件,可以改变主机名所对应的 ip 地址。比如安装了 Web
开发环境(MAMP 或 WAMP),启动环境以后,访问 http://localhost 就会打开环境的默认的目录,这个 localhost 就是在
hosts 文件里定义的,它所指向的 ip 地址是 127.0.0.1 ,这个 ip 地址表示本地的正在使用的这台电脑,了解详细的内容,可以搜索一下
:)
修改这个 hosts 文件,可以手工的去指定任何主机名指向任何的 ip 地址,当然这个设置只影响自己的电脑,比如可以随便造一个域名,比如
,让这个域名指向的电脑,也就是 127.0.0.1 这个 ip 地址。这样在浏览器中请求
,打开的就是在本地电脑上搭建的环境所指定的目录里的东西。为了测试 apache
的虚拟主机功能,可以去虚拟几个这样的域名,这样在创建虚拟主机的时候,可以让这些域名打开各自的目录。下面,先去修改这个 hosts 文件。
1. 找到 hosts 文件,windows 系统是在 WindowsSystem32Driversetc 这个目录下,Mac 系统是在
/etc/hosts ,找到以后可以使用文本编辑软件打开它。
2. 在 hosts 文件里,新的一行上,先输入 ip 地址 127.0.0.1 ,然后空格,再输入一个主机名,这个主机名可以随便,比如
,这样访问 就会打开在的电脑上的网站了。另起一行,再去定义一条,127.0.0.1 。
3. 保存修改之后的 hosts 文件,然后启动在本地上的 Web 环境,打开浏览器,在地址栏上输入 ,还有
,看看打开的是不是在本地上的内容。现在,看到的应该跟使用 http://localhost 打开的是一样的东西。
配置 Apache 虚拟主机:
现在,虚拟了两个域名,让它们指向了本地的电脑,访问它们,打开的是同一个目录里的内容,下面这个练习,通过修改 Apache
的配置文件,让访问不同域名的时候,打开的是不同的目录。首先要判断一下配置 Apache 虚拟主机的配置文件,一般是在 httpd.conf
这个主配置文件里面,不过,很多环境都会单独把虚拟主机放在一个配置文件里面,然后在 httpd.conf 文件里指定一下,包含这个单独配置虚拟主机的文件。
1. 找到配置虚拟主机的配置文件,如果用的是 WAMP 搭建的环境,先找到并打开 httpd.conf ,在这个文件里,搜索 # Virtual
hosts ,它下面有一行代码, #Include conf/extra/httpd-vhosts.conf... 可以去掉它前面的 # ,这样,Apache
启动以后,也会去加载这个httpd-vhosts.conf 配置文件,这样做的好处就是可以保持 Apache 相关设置的整洁。当然,完全可以在主配置文件
httpd.conf 里面去设置虚拟主机。
2. 打开 httpd-vhosts.conf 这个文件,没有这个文件也可以去创建一个,或者直接在 httpd.conf
文件里面去配置虚拟主机。配置虚拟主机的东西应该像这样:
3. 应该有两段这样的代码,每一段都是在配置一个虚拟主机,可以复制其中的一段,然后粘贴到文件的最下面。再根据自己的需要去修改这段代码。理解它的意思,ServerAdmin 就是网站的管理员的邮箱,DocumentRoot 是虚拟主机的主目录,也就是访问这个虚拟主机所打开的那个目录,这个目录可以自己去指定,要注意的是,需要先去创建这个目录,然后再在这里去指定这个目录的位置。ServerName 是主机名,比如之前虚拟的那个主机名 ,ServerAlias 是主机的别名,可以指定一个其它的主机名,访问它的时候也会打开这个虚拟主机的目录里的东西。ErrorLog 是错误的日志,也就是发生错误的时候,会把错误记录到哪个文件里。CustomLog 是虚拟主机访问的日志。
这样自己新添加的虚拟主机看起来应该像这样:
4. 在浏览器里打开 ,访问的是这个虚拟主机的配置里 DocumentRoot 所指定的 /Applications/MAMP/htdocs/hello 这个目录里的东西,可以在这个目录里面放点东西,比如一个 WordPress 或者 Drupal 的网站等等。
注:配置虚拟主机的时候,第一个虚拟主机是默认的,需要留着,配置自己的虚拟主机,可以从第二个开始配置,也就是第二段?
?代码。虚拟主机apache在哪里看啊?
虚拟主机不用你设置
你要写伪静态规则一般都是把规则写到站点根目录ess文件下,这个文件没有就自己创建一个。用的apache配置的虚拟主机,只有第一个能打开,别的是一直等待到超时,但是在服务器能正常打开。
如果你没有修改过虚拟主机相关配置的话,一般情况不会突然打不开的,还有如果你配置过伪静态的话也可能会有影响,还有就是DNS设置里面的是不是修改过相关的东西!