文章目录
一、构建虚拟web主机
- 虚拟 Web 主机指的是在同一台服务器中运行多个 Web 站点,其中的每一个站点实际上并不独立占用整个服务器,因此被称为“虚拟”Web 主机。通过虚拟 Web 主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。
- 总结来讲就是一个httpd服务可以同时运行支持多个web站点
httpd 支持的虚拟主机类型包括以下三种
- 基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP 地址是相同的
- 基于IP地址:为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同,这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛,但相对安全
- 基于端口:这种方式并不使用域名、IP地址来区分不同的站点内容,而是使用了不同的TCP端口号,因此用户在浏览不同的虛拟站点时需要同时指
定端口号才能访问。
二、配置虚拟主机
值得注意的是:
- 以yum或rpm方式安装的Apache软件默认首页目录为:/var/www/html
- 以源码安装的Apache软件默认首页目录为:/usr/local/httpd/htdocs
1. 基于域名的虚拟主机
1.1 为虚拟主机提供域名及解析
方法一:配置dns服务
方法二:添加hosts主机映射
[root@www ~]# echo "192.168.100.30 www.wwhao.com" >> /etc/hosts
[root@www ~]# echo "192.168.100.30 www.xxx.com" >> /etc/hosts
1.2 添加虚拟主机的配置
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf (源码安装的主配置文件路径)
模板修改和注释信息如下:
1.3 准备虚拟主机网页文档
1.4 设置访问控制
1.5加载独立的配置文件
vim /usr/local/httpd/conf/httpd.conf
#源码编译安装的httpd服务主配置文件路径
------483行------取消注释
Include conf/extra/httpd-vhosts.conf #加载独立的配置文件
vim /etc/httpd/conf/httpd.conf
(RPM或YUM安装的httpd服务主配置文件路径)
IncludeOptional conf.d/*.conf #最后一行已默认开启此项
systemctl restart httpd 修改完记得重启服务或重载配置文件
1.6 访问域名验证
2. 基于ip的虚拟主机
可以添加一个物理网卡 也可以添加一个虚拟网卡
这里为了方便就添加了一个虚拟网卡
2.1 添加虚拟网卡
ifconfig ens33:0 192.168.100.66 netmask 255.255.255.0
2.2 修改配置文件
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
只需修改IP地址 其他可不用修改
因为两个ip 所以也需将主配置文件里的 监听地址添加一条
vim /usr/local/httpd/conf/httpd.conf
然后重启测试
3.基于端口的虚拟主机
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
跟着上面的配置项 只需修改下端口即可
vim /usr/local/httpd/conf/httpd.conf
网页验证
三、构建虚拟目录与用户授权
1.创建认证数据文件
cd /usr/local/httpd/bin
./htpasswd -c /usr/local/httpd/user tset
#-c选项表示新建用户数据文件,再次创建则不需要加-c
cat /usr/local/httpd/user #确认用户数据文件
2. 添加授权配置
vim /usr/local/httpd/conf/httpd.conf
-----末行添加------
Alias /test /var/www/html/test
<Directory "/var/www/html/test">
AuthName "Hello!"
AuthType Basic
AuthUserFile /usr/local/httpd/user
Require valid-user
#authgroupfile /usr/local/httpd/conf/group
#Require user test
#Require group test
</Directory>
3. 验证
mkdir -p /var/www/html/test
echo "<h1>hello linux! </h1>" > /var/www/html/test/index.html
systemctl restart httpd
网站输入 http://192.168.100.30:80/test
四、日志分割
使用Apache自带rotatelogs分割工具,将Apache的日志进行按每天的日期自动分割
vim /usr/local/httpd/conf/httpd.conf
-----274行附近-----修改
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/error_%Y%m%d.log 86400" #分割错误日志
-----304行附近-----修改
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/access_%Y%m%d.log 86400" combined #分割访问日志
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf #虚拟主机也可以进行分割
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/xxx.com-error_%F.log 86400"
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/xxx.com- access_%F.log 86400" combined
#开头的|为管道符号。
#-l选项表示使用本地时间为时间基准。
#86400表示1天,即每天生成一个新的日志文件。
mkdir /var/log/httpd #创建分割后的日志文件保存目录
systemctl restart httpd
ls /var/log/httpd