构建虚拟 Web 主机
apache虚拟web主机指在同一台服务器运行多个web站点,其中每一个站点实际上并不独立占用整个服务器,因此被称为web主机,可以充分利用服务器的硬件资源,大大降低网站的构建成本
http服务支持三种虚拟主机类型
1,基于区域域名的(最普遍)为每个虚拟主机使用不同的域名,但是其对应的 IP 地址是相同的
2,基于ip地址为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同。 这种服务需要服务配置多个网络接口
3,基于端口 使用不同的tcp端口号因此用户再浏览不同虚拟站点时需要同时指定端口号才能访问
物理设备,网卡的聚合bond模式负载均衡,主备
基于域名的虚拟主机
为虚拟机提供域名解析
DNS部署脚本
#*. (#删除第一个.固定格式##删除最后一个.)从左往右看
%.* (%删除从右往左看第一个点%%.*从右向左最后一个点)
管理服务器
本地创建DNS通过域名 区分提供各种服务的服务器
只需改域名映射关系就能连接服务
DNS正向解析
配置cd /opt/
vim /etc/named.conf
配DNS服务器
//主配置文件allow-query { any; }
vim /etc/named.rfc1912.zones
配置;cd /etc/named
vim dxl .come.zone
临时dns配置
echo "192.168.232.105 www.benet.com" >> /etc/hosts
echo "192.168.232.105 www.accp.com" >> /etc/hosts
mkdir -p /var/www/html/{accp,benet}
echo "<h1>www.benet.com</h1>" > /var/www/html/benet/index.html
echo "<h1>www.accp.com</h1>" > /var/www/html/accp/index.html
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
4.设置访问控制
<Directory "/var/www/html"> #设置目录访问权限
Options None #不启用任何的服务器特性
AllowOverride None #不允许重写Apache默认配置
Require all granted #允许所有主机访问
</Directory>
systemctl restart httpd
目录的访问控制(默认拒绝所有)
#vim /etc/httpd/conf.d/vhosts.conf #RPM或YUM安装的虚拟主机配置文件路径
vim /usr/local/httpd/conf/httpd.conf #源安装
取消483行注释
Include conf/extra/httpd-vhosts.conf #加载独立的配置文件
options默认特性
除了 multiviews的所有特性
基于IP地址的虚拟主机
ifconfig ens33:0 192.168.80.100 netmask 255.255.255.0
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
配置accp域名和benet
vim /usr/local/httpd/conf/httpd.conf
--53行--插入
Listen 192.198.80.100:80
指定地址
基于端口号虚拟主机
vim httpd.conf
先监听端口8080
apache连接保持
vim /usr/local/httpd/conf/extra/httpd-default.conf
keepAlive on(可在高并发时打开,并发量不高时·关闭)
maxkeepAliverequests 100 #最大请求数
KeepAliveTimeout 5 响应时间
取消注释
构建
根目录
以根为起点
别名目录(虚拟目录)
alias
网页实际位置 alias目录下的目录/文件
apache日志分割工具
自带 $(data %Y%m%d)年月日 86400分割周期一天
--275行--修改
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/error_%Y%m%d.log 86400" #分割错误日志
该命令告诉Apache使用rotatellogs每天(-l)轮换错误日志文件,文件名格式为“error_YYYYMMDD.log”(%Y%m%d),并将每个日志文件保存86400秒(24小时)
存储在/var/log/httpd目录下
--305行--修改
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/access_%Y%m%d.log 86该命令告诉Apache使用rotatellogs每天(-l)轮换访问日志文件,文件名格式为存放在/var/log/httpd目录下“access_YYYYMMDD.log”(%Y%m%d),并将每个日志文件保存86400秒(24小时)400"
combined #分割访问日志
-l使用本地时间计算
apachctl -t检查
通过脚本有可能报错再重启即可
apache 网页访问控制
网页用户授权限制