Web服务器群集——Apache的配置与应用

Apache的配置

Apache配置剖析

Apache连接保持相关参数

  • KeepAlive
    是否打开连接保持,OFF关闭,ON打开
  • KeepAliveTimeout
    一次连接多次请求之间的最大间隔时间,两次请求超过该时间连接断开
  • MaxKeepAliveRequests
    一次连接能够传输的最大请求数量

配置文件在 /usr/local/httpd/conf/extra/httpd-default.conf

# Apache连接保持
[root@lamp ~]# vim /usr/local/httpd/conf/extra/httpd-default.conf
KeepAlive On 
# 设置是否打开连接保持功能,后面接0FF表示关闭,接ON表示打开。可以根据网站的并发请求量决定是否打开,即在高并发时打开连接保持功能,并发量不高时关闭此功能

MaxKeepAliveRequests 100
# 用于设置在一次长连接中可以传输的最大请求数量,超过此最大请求数量就会断开连接,最大值的设置决定于网站中网页的内容,一般设置数量会多于网站中所有的元素

KeepAliveTimeout 5
# 设置来自同一个客户端一次连接多次请求之间的最大间隔时间,即两次请求之间超过该时间连接就会自动断开,从而避免客户端占用连接资源。

Apache访问控制

Apache访问控制

  • 作用
    控制对网站资源的访问
    为特定的网站目录添加访问授权
  • 常用访问控制方式
    客户机地址限制
    用户授权限制

基于客户端地址的访问控制

使用Require配置项实现访问控制,按先后顺序限制

可用于Location、Directory、Files、Limit 配置段中

Require配置项的常见语法

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

Require all granted		# 允许所有
Require all denied		# 拒绝所有
Require local		# 只允许本地
Require [not] host <主机名或域名列表>
Require [not] ip <IP地址或网段列表>
注意:使用not禁止访问时要将其置于<RequireAll> </RequireAll>容器中并在容器中指定相应的限制策略

# 例如  除了ip 188 其他都允许
<RequireAll>
        Require all granted
        Require not ip 192.168.188.188
    </RequireAll>

基于用户授权限制

设置验证用户访问权限

# 在需要设置的<Directory> 标签里添加
[root@lamp conf]# vim /usr/local/httpd/conf/httpd.conf
<Directory "/usr/local/httpd/htdocs">
AuthName "DocumentRoot"
    AuthType Basic
    AuthUserFile /usr/local/httpd/conf/.awspwd
    Require valid-user
    
</Directory>


# 创建用户认证数据库
[root@lamp httpd]# /usr/local/httpd/bin/htpasswd -c /usr/local/httpd/conf/.awspwd maomao
New password: 
Re-type new password: 
Adding password for user maomao

[root@lamp conf]# cat .awspwd 
maomao:$apr1$M5cTVGnd$Rp.wkaO07a6AO8Bq8OaWj0

我们访问网站 测试是否需要验证
在这里插入图片描述
输入账户和密码之后成功访问
在这里插入图片描述
在这里插入图片描述

Apache日志管理

随着网站的访问量增加,默认情况下Apache的单个日志文件也会越来越大

  • 日志文件占用磁盘空间很大
    查看相关信息不方便

对日志文件进行分割

  • Apache自带rotatelogs分割工具实现
    第三方工具cronolog分割

日志分割

我们就使用apache自带的rotatelogs分割工具进行日志分割

日志有两种记录格式
common

  • 通用日志格式(Common Log Format)
    这是一个典型的记录格式:
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog logs/access_log common

combined
如果需要通过一些log统计程序如awstats来查看apache log 则为获取更详细的日志输入当采用 combined方式

组合日志格式(Combined Log Format)
另一种常用的记录格式是组合日志格式,形式如下:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{
    
    Referer}i\" \"%{
    
    User-agent}i\"" combined
CustomLog log/access_log combined
# 再次编辑主配置文件

# 注释 ErrorLog "logs/error_log"
ErrorLog "| /usr/local/httpd/bin/rotatelogs -l /usr/local/httpd/logs/error_%Y%m%d.log 86400"

# 注释 CustomLog "logs/access_log" common
CustomLog "| /usr/local/httpd/bin/rotatelogs -l /usr/local/httpd/logs/wordpree_%Y%m%d.log 86400" combined

在这里插入图片描述
在这里插入图片描述

[root@lamp logs]# ls
error_20210324.log  httpd.pid  wordpree_20210324.log

# 动态查看日志变化
[root@lamp logs]# tail -f wordpree_20210324.log 

有访问记录!
在这里插入图片描述

AWStats日志分析

AWStats日志分析系统

  • Perl语言开发的一款开源日志分析系统
  • 可用来分析Apache、 Samba、Vsftpd、IIS等服务器的访问日志
  • 信息结合crond等计划任务服务,可对日志内容定期进行分析

AWStats安装

我使用的是awstats-7.6版本

[root@lamp awstats]# tar xf awstats-7.6.tar.gz

# 执行tools目录下的awstats_configure.pl 简化创建过程
[root@lamp tools]# ./awstats_configure.pl

Do you want to continue setup from this NON standard directory [yN] ? y

# 本实验的httpd主配置文件路径为/usr/local/httpd/conf/httpd.conf
Config file path ('none' to skip web server setup):
> /usr/local/httpd/conf/httpd.conf

# 确定创建新的站点配置文件
-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ? 

# 指定要统计的目标站点
Your web site, virtual server or profile name:
> www.xiaotian.com

# 编辑配置文件,指定用来分析的日志文件和指定存放统计数据目录
[root@lamp tools]# mkdir -p /var/lib/awstats

[root@lamp awstats]# vim /etc/awstats/awstats.www.xiaotian.com.conf
LogFile="/usr/local/httpd/logs/wordpree_20210318.log"

# 使用awstats_updateall.pl脚本,可以更新所有站点
[root@lamp tools]# ./awstats_updateall.pl 
----- awstats_updateall 1.0 (build 20140126) (c) Laurent Destailleur -----
awstats_updateall launches update process for all AWStats config files (except
awstats.model.conf) found in a particular directory, so you can easily setup a
cron/scheduler job. The scanned directory is by default /etc/awstats.

Usage:  awstats_updateall.pl now [options]

Where options are:
  -awstatsprog=pathtoawstatspl
  -configdir=directorytoscan
  -excludeconf=conftoexclude[,conftoexclude2,...] (Note: awstats.model.conf is always excluded)

[root@lamp tools]# echo $?
0

# 通过crontab 服务可以设置任务计划
[root@lamp tools]# crontab -e
*/5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now

# 修改主配置文件
vim /etc/httpd/conf/httpd.conf
<IfModule !mpm_prefork_module>
        LoadModule cgid_module modules/mod_cgid.so
</IfModule>
<IfModule mpm_prefork_module>
        LoadModule cgi_module modules/mod_cgi.so
</IfModule>
<Directory "/usr/local/awstats/wwwroot">
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
    Require all granted

</Directory>

# 最后写日志网页
cd /usr/local/httpd/htdocs/
vim awb.html

<html>
<head>
<meta http-equiv=refresh content="0;
url=http://www.xiaotian.com/awstats/awstats.pl?config=www.xiaotian.com">
</head>
<body></body>
</html>

# 使用浏览器
http://192.168.188.188/awstats/awstats.pl?config=www.xiaotian.com

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Cantevenl/article/details/115180982