Apache虚拟主机和日志分割
一、Apache虚拟主机
1、虚拟主机概述:
在介绍虚拟主机之前,这边要引入一个概念:访问主机服务。
举个例子,我们访问IP:192.168.65.130:80。
本质上看,就是访问主机上的80端口。通常需要访问不同的域名或者端口,实现对不同主机的访问。
而虚拟主机,就是在一个Apache服务器上配置多个虚拟空间,实现一个服务器提供多站点服务,其实就是访问同一个服务器上的不同目录。
2、访问不同web站点的方式:
1、访问不同的域名。例如:www.baidu.com mail.qq.com等。
2、访问不同的端口。例如:192.168.65.130:80 192.168.65.130.66等。
3、访问不同的IP。例如:192.168.65.130 192.168.100.130等。
3、基于域名的访问控制:
1、追加2个测试域名到/etc/hosts。
2、创建2个html文件。
3、输入内容到主页文件
4、配置配置文件
5、Apache主配置文件
操作总结:
[root@localhost ~]# echo "192.168.65.141 www.lrz.com" >> /etc/hosts
[root@localhost ~]# echo "192.168.65.141 www.liu.com" >> /etc/hosts
[root@localhost ~]# mkdir -p /var/www/html/lrz
[root@localhost ~]# mkdir -p /var/www/html/liu
[root@localhost ~]# echo "<h1>www.lrz.com</h1>" > /var/www/html/lrz/index.html
[root@localhost ~]# echo "<h1>www.liu.com</h1>" > /var/www/html/liu/index.html
[root@localhost ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf
<VirtualHost 192.168.65.141:80>
DocumentRoot "/var/www/html/lrz"
ServerName www.lrz.com
ErrorLog "logs/lrz.com-error_log"
CustomLog "logs/lrz.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.65.141:80>
DocumentRoot "/var/www/html/liu"
ServerName www.liu.com
ErrorLog "logs/liu.com-error_log"
CustomLog "logs/liu.com-access_log" common
</VirtualHost>
<Directory "/var/www/html">
Options None
AllowOverride None
Require all granted
</Directory>
4、基于IP地址访问控制
1、添加一个临时网卡:
2:修改配置文件:
3、主配置文件增加一个监听端口:
4、重启服务查看
操作总结:
ifconfig ens33:0 192.168.100.100 network 255.255.255.0
ifconfig ens33:0
[root@localhost ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.100.100:80>
[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf
Listen 192.168.100.100:80
[root@localhost ~]# httpd -t
Syntax OK
[root@localhost ~]# service httpd restart
5、基于端口的访问控制
1、改配置文件端口
2、改主配置监听端口
3、重启执行
操作总结:
[root@localhost ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 192.168.65.141:8080>
[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf
Listen 192.168.65.141:8080
[root@localhost ~]# httpd -t
Syntax OK
[root@localhost ~]# service httpd restart
6、保持连接
HTTP协议是基于TCP协议之上的,在进行HTTP连接之前,要先进行TCP连接,每个TCP连接都要进行三次握手与四次挥手。建立与关闭连接对于HTTP协议而言会消耗很多的内存与CPU资源。
解决办法是HTTP连接保持。就是尽量地保持客户端的连接,通过一个TCP连接传送多个HTTP请求响应,对于客户端可以提高50%以上的响应时间,对于服务器可以降低建立与关闭连接时的资源消耗。
6.1 保持连接方式
Apache连接相关参数:
配置文件:
vim /usr/local/httpd/conf/extra/httpd-default.conf
KeepAlive
是否打开连接保持,OFF关闭,ON打开
KeepAliveTimeout
一次连接多次请求之间的最大间隔时间,两次请求超过该时间连接断开
MaxKeepAliveRequests
一次连接能够传输的最大请求数量
二、日志分割
1、分割工具所在位置:
[root@server ~]# which rotatelogs
/usr/local/bin/rotatelogs
2、日志文件位置:
[root@server ~]# ls /var/log/httpd/
access_log error_log
3、修改主配置文件:
275行,在下面添加内容
ErrorLog "logs/error_log"
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/aaa.com-error_log_%Y%m%d.log 86400"
305行,在下面添加内容
CustomLog "logs/access_log" common
CustomLog "|/usr/local/bin/rotatelogs -l /var/log/httpd/aaa.com-access_%Y%m%d.log 86400" combined
[root@server ~]# ls /var/log/httpd/
access_log error_log
重启服务,验证错误日志已产生:
修改系统时间,验证是否产生日志文件:
[root@server ~]# date
2021年 06月 20日 星期日 16:04:47 CST
[root@server ~]# date -s 20210620
2021年 06月 20日 星期日 00:00:00 CST
[root@server ~]# date -s 15:18:00
2021年 06月 20日 星期日 15:18:00 CST
[root@server ~]# ls /var/log/httpd/
aaa.com-error_log_20210620.log access_log error_log
#发现多出了1个文件,是网站名+日期的日志文件