Apache的多种形态(虚拟主机+日志分割)

1. 虚拟主机

在apache应用过程中,管理员经常需要对apache下的目录做一些限制,不希望所有用户都能访问该目录下的文件,只对指定用户访问,此时我们就要用到apache的权限功能。通过虚拟主机的方式,实现以不同的网卡,不同ip,提供多个服务(三种方式:基于域名、基于ip、基于端口,也可以混合搭建)。

1.1 基于域名的访问控制

[root@server ~]# echo "192.168.152.130 www.aaa.com" >> /etc/hosts
[root@server ~]# echo "192.168.152.130 www.bbb.com" >> /etc/hosts
[root@server ~]# 
[root@server ~]# mkdir -p /var/www/html/aaa
[root@server ~]# mkdir -p /var/www/html/bbb
[root@server ~]# 
[root@server ~]# echo "<h1>www.aaa.com</h1>" > /var/www/html/aaa/index.html
[root@server ~]# echo "<h1>www.bbb.com</h1>" > /var/www/html/bbb/index.html

[root@server ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

<VirtualHost 192.168.152.130:80>
    DocumentRoot "/var/www/html/aaa"
    ServerName www.aaa.com
    ErrorLog "logs/aaa.com-error_log"
    CustomLog "logs/aaa.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.152.130:80>
    DocumentRoot "/var/www/html/bbb"
    ServerName www.bbb.com
    ErrorLog "logs/bbb.com-error_log"
    CustomLog "logs/bbb.com-access_log" common
</VirtualHost>
<Directory "/var/www/html">
 Options None
AllowOverride None
Require all granted
</Directory>


[root@server ~]# vim /usr/local/httpd/conf/httpd.conf
#大概第480行左右,取消下面的#号符号
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

在虚拟机终端 打开火狐浏览器
访问 www.aaa.com 和 www.bbb.com

1.2 基于ip地址的访问控制

[root@server ~]# ifconfig ens33:0 192.168.152.152 netmask 255.255.255.0

ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.152.152  netmask 255.255.255.0  broadcast 192.168.152.255
        ether 00:0c:29:16:8d:76  txqueuelen 1000  (Ethernet)

[root@server ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

<VirtualHost 192.168.152.130:80>
    DocumentRoot "/var/www/html/aaa"
    ServerName www.aaa.com
    ErrorLog "logs/aaa.com-error_log"
    CustomLog "logs/aaa.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.152.152:80>
#修改为虚拟网卡的IP地址
    DocumentRoot "/var/www/html/bbb"
    ServerName www.bbb.com
    ErrorLog "logs/bbb.com-error_log"
    CustomLog "logs/bbb.com-access_log" common
</VirtualHost>
<Directory "/var/www/html">
 Options None
AllowOverride None
Require all granted
</Directory>


[root@server ~]# vim /usr/local/httpd/conf/httpd.conf

Listen 192.168.152.130:80
Listen 192.168.152.152:80
#增加一个监听的地址
#Listen 80


1.2 基于端口的访问控制

[root@server ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

<VirtualHost 192.168.152.130:80>
    DocumentRoot "/var/www/html/aaa"
    ServerName www.aaa.com
    ErrorLog "logs/aaa.com-error_log"
    CustomLog "logs/aaa.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.152.130:80>
#将地址改为原样,修改端口号为8080
    DocumentRoot "/var/www/html/bbb"
    ServerName www.bbb.com
    ErrorLog "logs/bbb.com-error_log"
    CustomLog "logs/bbb.com-access_log" common
</VirtualHost>
<Directory "/var/www/html">
 Options None
AllowOverride None
Require all granted
</Directory>



[root@server ~]# vim /usr/local/httpd/conf/httpd.conf

Listen 192.168.152.130:80
Listen 192.168.152.130:8080
#Listen 80



2.保持连接

Apache 保持连接就是尽量地保持客户端的连接,通过一个TCP连接传送多个HTTP请求响应,对于客户端可以提高50%以上的响应时间,对于服务器可以降低建立与关闭连接时的资源消耗。
1tcp - 1次http
1tcp - 多次http

2.1 保持连接方式

Apache连接相关参数:
配置文件:
vim /usr/local/httpd/conf/extra/httpd-default.conf
KeepAlive
是否打开连接保持,OFF关闭,ON打开
KeepAliveTimeout
一次连接多次请求之间的最大间隔时间,两次请求超过该时间连接断开
MaxKeepAliveRequests
一次连接能够传输的最大请求数量

3. 日志分割

随着网站的访问量增大,默认情况下Apache的单个日志文件也会越来越大
会存在日志文件占用磁盘空间很大,以及查看相关信息不方便这些问题,为了解决这些问题,所以我们要做到的操作就是对日志文件进行分割,Apache自带rotatelogs分割工具实现这一要求

查看rotatelogs的所在位置:

[root@server ~]# which rotatelogs 
/usr/local/bin/rotatelogs

查看目录下面的日志文件:

[root@server ~]# ls /var/log/httpd/
access_log  error_log

修改主配置文件,设置按天分割日志,格式%Y%m%d=年月日.log



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个文件,是网站名+日期的日志文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值