Apache默认虚拟主机

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache默认虚拟主机相关的知识,希望对你有一定的参考价值。

技术分享图片
httpd配置文件中,DocumentRoot "/usr/local/apache2.4/htdocs"这一行定义了网站的根目录在哪里,域名就是定义的 ServerName www.example.com:80这一行

Windows下的hosts的路径
技术分享图片
在hosts文件中添加一行本机ip 域名 第二个域名(一个ip可以对应多个域名,中间使用空格隔开),可以临时把一个域名指定到一个IP上去,这个是在DNS还没有生效的情况下可以这样做
技术分享图片
linux的httpd配置文件中,ServerName www.example.com:80这一行是Apache的默认虚拟主机,只要是指定到这个ip,它都会访问到www.example.com:80这个站点,这个站点就叫做默认虚拟主机
在配置文件中搜索;extra这个关键词,里面有一行
#Virtual hosts 这个是虚拟主机
#Include conf/extra/httpd-vhosts.conf //把这一行前面的#号去掉
打开二级虚机主机配置文件,这里面可以定义多个ServerName
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //虚拟主机配置文件路径
技术分享图片
配置文件中,一个VirtualHost代表一个主机,一个主机代表一个网站
<VirtualHost *:80>
ServerAdmin [email protected] //定义管理员邮箱,可以删掉
DocumentRoot "/usr/local/apache2.4/docs/dummy-host.example.com" //定义网站根目录
ServerName dummy-host.example.com //定义网站名称
ServerAlias www.dummy-host.example.com //定义别名,可以有多个别名,但访问的内容一样
ErrorLog "logs/dummy-host.example.com-error_log" //指定错误日志
CustomLog "logs/dummy-host.example.com-access_log" common //指定访问日志
</VirtualHost>
这样就定义了一个网站,定义网站最核心的地方在定义它的根目录、以及访问的域名,注意只有ServerAlias可以写多个域名,ServerName只能写一个
一旦虚机主机配置文件生效,那么httpd.conf文件中定义的ServerName www.example.com:80就会失效
技术分享图片
这样就在虚拟主机配置文件中定义了两个网站
#mkdir /data/wwwroot/ //创建站点目录
#mkdir /data/wwwroot/abc.com
#mkdir /data/wwwroot/111.com
#vim /data/wwwroot/abc.com/index.php //abc.com目录下创建index.php文件
<?php
echo "abc.com";
?>
#vim /data/wwwroot/111.com/index.php //111.com目录下创建index.php文件
<?php
echo "111.com";
?>
#/usr/local/apache2.4/bin/apachectl -t //检查服务有没有错误
#/usr/local/apache2.4/bin/apachectl graceful //重新加载

curl命令
#curl -x192.168.238.128:80 abc.com //指定abc.com访问到本机192.168.238.1:80端口
或者# curl -x192.168.238.128:80 www.abc.com
如果访问的域名没有在虚机主机配置文件中配置,那么他会默认使用第一段配置文件即第一段定义的abc.com,这一段也是默认虚拟主机配置文件,虚拟主机配置文件一生效,httpd.conf主配置文件定义的ServerName www.example:80和DocumentRoot=xxx网站路径就会失效!
技术分享图片

以上是关于Apache默认虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章

Apache的默认虚拟主机

4.Apache和PHP结合 Apache默认虚拟主机

PHP和Apache结合 Apache默认虚拟主机

Apache 虚拟主机:HTTP 被重定向到默认的 Apache 站点

Apache和PHP结合 Apache默认虚拟主机

apache禁止访问默认虚拟主机