Apache虚拟主机
一、概述
1、Apache虚拟主机是通过在Apache服务器上搭建多个虚拟空间,实现一个服务器提供多种服务站点(访问Apache服务器上不同目录)。
2、Apache虚拟主机可以充分利用服务器硬件资源,从而实现大大的降低网站的搭建和运行成本。
3、通过虚拟主机的方式,实现以不同的网卡,不同ip,提供多个服务(三种方式:基于域名、基于ip、基于端口,也可以混合搭建)。
二、基于域名
Apache虚拟主机基于域名搭建特点为:
1、端口不同,但IP地址和端口相同
2、因为HTTP协议访问请求里包含有主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站。
配置基于域名
源码编译安装好Apache
#为虚拟主机提供域名解析
[root@Apache ~]# echo "192.168.238.150 www.xbl.com" >> /etc/hosts
[root@Apache ~]# echo "192.168.238.150 www.srh.com" >> /etc/hosts
#创建目录及子目录
[root@Apache ~]# mkdir -p /var/www/html/xbl
[root@Apache ~]# mkdir -p /var/www/html/srh
#创建网页文件并为网页文件添加内容
[root@Apache ~]# echo "<h1>www.xbl.com</h1>" > /var/www/html/xbl/index.html
[root@Apache ~]# echo "<h1>www.srh.com</h1>" > /var/www/html/srh/index.html
[root@Apache ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf #进入虚拟主机文件(路径为源码编译安装Apache的文件目录)
<VirtualHost 192.168.238.150:80>
DocumentRoot "/var/www/html/xbl" #设置网站根目录
ServerName www.xbl.com #设置Web站点的完整域名
ErrorLog "logs/xbl.com-error_log" #设置错误日志文件的路径
CustomLog "logs/xbl.com-access_log" common #设置访问日志文件的路径
</VirtualHost>
<VirtualHost 192.168.238.150:80>
DocumentRoot "/var/www/html/srh"
ServerName www.srh.com
ErrorLog "logs/srh.com-error_log"
CustomLog "logs/srh.com-access_log" common
</VirtualHost>
<Directory "/var/www/html"> #设置目录访问权限
Options None #不启用任何的服务器特性
AllowOverride None #不允许重写Apache默认配置
Require all granted #允许所有主机访问
</Directory>
[root@Apache ~]# vim /usr/local/httpd/conf/httpd.conf #进入主配置文件
[root@Apache ~]# service httpd stop
[root@Apache ~]# service httpd start
三、基于ip
Apache虚拟主机基于ip搭建特点为:
1、域名不同,对应的IP地址不同,端口相同
2、因为需要为服务器配置多个网络接口,所以现网环境使用的不多
配置基于ip
[root@Apache ~]# ifconfig ens33:0 192.168.238.111 netmask 255.255.255.0 #创建虚拟网卡
[root@Apache ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf #进入虚拟主机文件
<VirtualHost 192.168.238.150:80>
DocumentRoot "/var/www/html/xbl"
ServerName www.xbl.com
ErrorLog "logs/xbl.com-error_log"
CustomLog "logs/xbl.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.238.111:80> #修改为创建的虚拟网卡ip
DocumentRoot "/var/www/html/srh"
ServerName www.srh.com
ErrorLog "logs/srh.com-error_log"
CustomLog "logs/srh.com-access_log" common
</VirtualHost>
<Directory "/var/www/html">
Options None
AllowOverride None
Require all granted
</Directory>
[root@Apache ~]# vim /usr/local/httpd/conf/httpd.conf #进入主配置文件
增加一个监听地址
[root@Apache ~]# service httpd stop
[root@Apache ~]# service httpd start
通过IP地址访问网页
四、基于端口
Apache虚拟主机基于端口搭建特点为:
1、域名、端口都不同,IP地址相同
2、客户访问Apache服务时需要加上端口访问
设置基于端口
[root@Apache ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.238.150:80>
DocumentRoot "/var/www/html/xbl"
ServerName www.xbl.com
ErrorLog "logs/xbl.com-error_log"
CustomLog "logs/xbl.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.238.150:8080>
DocumentRoot "/var/www/html/srh"
ServerName www.srh.com
ErrorLog "logs/srh.com-error_log"
CustomLog "logs/srh.com-access_log" common
</VirtualHost>
<Directory "/var/www/html">
Options None
AllowOverride None
Require all granted
</Directory>
[root@Apache ~]# vim /usr/local/httpd/conf/httpd.conf
[root@Apache ~]# service httpd stop
[root@Apache ~]# service httpd start
五、日志分割
日志分割:可以把一个完整的日志根据时间的方式进行分割(按天进行分割)
[root@Apache ~]# vim /usr/local/httpd/conf/httpd.conf
分割错误日志
分割访问日志
[root@Apache ~]# service httpd stop
[root@Apache ~]# service httpd start
[root@Apache ~]# cd /usr/local/httpd/logs/
[root@Apache logs]# ls
access_log error_log httpd.pid srh.com-access_log srh.com-error_log xbl.com-access_log xbl.com-error_log
[root@Apache logs]# date
2021年 06月 20日 星期日 00:24:11 CST
[root@Apache logs]# date -s 20210620 #date -s修改日期
2021年 06月 20日 星期日 00:00:00 CST
[root@Apache logs]# date -s 23:40:50
2021年 06月 20日 星期日 23:40:50 CST
小小总结:
1、搭建Apache服务器,要注意源码编译配置文件目录和yum或rpm安装的配置文件目录不一样
2、源码编译配置文件目录:/usr/local/httpd/
3、yum或rpm安装的配置文件目录:/etc/httpd/