首页 > 技术文章 > Apache默认虚拟主机

antong 2021-07-26 11:13 原文

Apache默认虚拟主机

•一台服务器可以访问多个网站,每个网站都是一个虚拟主机

• 概念:域名(主机名)、DNS、解析域名、hosts

• 任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机

虚拟主机配置

1.修改主配置文件使虚拟主机生效

cd /usr/local/apache2/conf
vim httpd.conf //搜索httpd-vhost,去掉#

2.修改vhosts文件

cp extra/httpd-vhosts.conf extra/httpd-vhosts.conf.bk //对vhosts文件进行备份
vim extra/httpd-vhosts.conf //改为如下
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/local/apache2.4/docs/abc.com"
    ServerName abc.com   //不配置vhost,默认域名为example
    ServerAlias www.abc.com www.aaa.com
    ErrorLog "logs/abc.com-error_log"
    CustomLog "logs/abc.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/usr/local/apache2.4/docs/111.com"
    ServerName 111.com
    ErrorLog "logs/111.com-error_log"
    CustomLog "logs/111.com-access_log" common
</VirtualHost>

3.创建简单的测试文件

cd /usr/local/apache2.4/
mkdir docs
cd docs/
mkdir abc.com
mkdir 111.com
vim abc.com/index.html //写入abc.com即可
vim 111.com/index.html //写入111.com即可

4.对之前的配置进行测试

/usr/local/apache2/bin/apachectl –t  //测试语法
/usr/local/apache2/bin/apachectl graceful  //重新加载
curl -xlocalhost:80 www.abc.com  //显示abc.com中的内容
curl -xlocalhost:80 www.aaa.com  //同样显示abc.com中的内容
curl -xlocalhost:80 111.com  //显示111.com中的内容

推荐阅读