前言
当一台真实web服务器只发布一个网站的时候,现在需要发布多个网站,传统做法是在多个真实web服务器上发布网站,有点烧钱,这个时候就需要在一台web服务器上虚拟出多个主机来充当不同的web服务器,来发布不同网站,有三种方式:基于域名、基于IP、基于端口。
基于域名:域名不同,IP地址相同,端口相同
基于IP:域名不同,IP地址不同(可以是多个网卡,或者虚拟出一块网卡),端口相同
基于端口:域名不同,IP地址相同,端口不同
基于域名虚拟主机配置
在/etc/hosts文件中临时添加IP与域名的映射
echo “192.168.177.100 www.accp.com” >> /etc/hosts
echo “192.168.177.100 www.benet.com” >> /etc/hosts
准备虚拟主机的网页文件
mkdir -p /var/www/html/accp
mkdir -p /var/www/html/benet
echo "
www.accp.com
" >> /var/www/html/accp/index.htmlecho "
www.benet.com
" >> /var/www/html/benet/index.html添加虚拟主机配置
修改虚拟主机配置文件,配置基于域名的配置
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
虚拟主机的模板文件:
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com //管理员邮箱,虚拟主机可以不用,注释掉
DocumentRoot “/usr/local/httpd/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 //访问日志文件路径
基于域名做以下修改:ip相同,域名不同,端口相同
<VirtualHost 192.168.177.100:80>
#ServerAdmin webmaster@dummy-host.example.com
DocumentRoot “/var/www/html/accp”
ServerName www.accp.com
#ServerAlias www.dummy-host.example.com
ErrorLog “logs/accp.com-error_log”
CustomLog “logs/accp.com-access_log” common
<VirtualHost 192.168.177.100:80>
#ServerAdmin webmaster@dummy-host.example.com
DocumentRoot “/var/www/html/benet”
ServerName www.benet.com
#ServerAlias www.dummy-host.example.com
ErrorLog “logs/benet.com-error_log”
CustomLog “logs/benet.com-access_log” common
<Directory “/var/www/html”>
Options None
AllowOverride None
Require all granted
修改httpd主配置文件,加载扩展的配置文件功能
vim /etc/httpd.conf
定位到485行(看个