IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Apache连接保持、访问控制、日志分割以及日志分析 -> 正文阅读

[Python知识库]Apache连接保持、访问控制、日志分割以及日志分析

目录

前言

一、Apache连接保持

会话保持的相关参数

二、Apache 的访问控制

客户机地址限制

用户授权限制

创建用户认证数据文件

添加用户授权配置

验证用户访问权限

三、Apache 日志分割

Apache 自带 rotatelogs 分割工具

使用第三方工具 cronolog 分割

四、Apache日志分析

总结


前言

?Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python解释器编译到服务器中。

一、Apache连接保持

  • HTTP协议是基于TCP协议之上的可靠传输,在进行HTTP连接之前,要先进行TCP连接,每个TCP连接都要进行三次握手与四次挥手。HTTP协议建立与关闭连接对于HTTP协议而言会消耗很多的内存与CPU资源,解决办法是HTTP连接保持。
  • 对于HTTP/1.1而言,就是尽量地保持客户端的连接,通过一个TCP连接传送多个HTTP请求响应,对于客户端可以提高50%以上的响应时间,对于服务器可以降低建立与关闭连接时的资源消耗
  • Apache 通过设置配置文件 httpd-default.conf 中相关的连接保持参数来开启与控制连接保持功能

会话保持的相关参数

① KeepAlive 决定是否打开连接保持功能,后面接 OFF 表示关闭,接 ON 表示打开。可以根据网站的并发请求量决定是否打开,即在高并发时打开连接保持功能,并发量不高时关闭此功能。
② KeepAliveTimeout 表示一次连接多次请求之间的最大间隔时间,即两次请求之间超过该时间,连接就会自动断开,从而避免客户端占用连接资源
③ 在一次长连接中可以传输的最大请求数量可以使用 MaxKeepAliveRequstes 设置,超过此最大请求数量就会断开连接。最大值的设置决定干网站中网页的内容,一般设置数量会多于网站中所有的元素

二、Apache 的访问控制

为了更好的控制对网站资源的访问,可以为特定的网站目录添加访问授权。

客户机地址限制

通过配置Order、Deny from、Allow from,可以根据客户机的主机名或IP地址来决定是否允许客户端访问。

#地址形式可以是IP地址、网络地址、主机名或域名
Deny from address1 address2 .... #默认允许所有未明确拒绝的客户机地址
Allow from address1 address2 ....  #默认拒绝所有未明确允许的客户机地址

用户授权限制

httpd服务器支持使用摘要认证和基本认证。摘要认证必须在编译前加"--enable-auth-digest",而基本认证是httpd服务的基本功能不需要特别配置

基于用户的访问控制包含认证和授权两个过程。认证指识别用户身份的过程,授权是指允许特定用户访问特定目录区域的过程

创建用户认证数据文件

cd /usr/local/httpd/bin

[root@www bin]#./htpasswd -c /usr/local/httpd/user xjj  #创建xjj用户数据文件,此处有-c
#-c选项表示新建用户数据文件,缺省时则表示指定的用户数据文件已经存在,用于添加新的用户或修改现有用户的密码
New password:             #输入用户密码
Re-type new password:     #确认密码
Adding password for user xjj

[root@www bin]#./htpasswd  /usr/local/httpd/user xjj1 #创建xjj1用户数据文件,此处没有-c
New password: 
Re-type new password: 
Adding password for user xjj1
#-c指定的文件位置为/usr/local/httpd/目录下的任意目录中都可以

[root@www bin]#cat /usr/local/httpd/user        
#查看用户是否添加成功

添加用户授权配置

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 xjj
   #Require group xjj
</Directory>


解释:
Alias /test /var/www/html/test     #设置虚拟目录的根目录,/test为虚拟目录名称

<Directory "/var/www/html/test">   #设置虚拟目录配置区域
   AuthName "Hello!"              #定义受保护的领域名称,会在认证对话框中显示
   AuthType Basic                 #设置认证的类型,Basic表示基本认证
   AuthUserFile /usr/local/httpd/user         #设置用于保存用户账号和密码的认证文件的路径
   Require valid-user             #开启用户认证,只有认证文件中的合法用户才能访问
   #authgroupfile /usr/local/httpd/conf/group  #设置用于保存组账号和密码的认证文件的路径
   #Require user xjj          #仅允许指定用户访问
   #Require group xjj         #仅允许指定组访问
</Directory>

验证用户访问权限

[root@www bin]#mkdir -p /var/www/html/test
[root@www bin]#echo "<h1>hello world</h1>" > /var/www/html/test/index.html
[root@www bin]#systemctl restart httpd.service 

http://192.168.126.11:80/test

三、Apache 日志分割

默认情况下Apache服务器产生的单个日志文件也会越来越大,如果不对日志进行分割,那么日志文件占用磁盘空间过多会导致开启日志文件变得困难,也不便于管理和清除。

Apache 自带 rotatelogs 分割工具

vim /usr/local/httpd/conf/httpd.conf
#275行,修改
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/error_%Y%m%d.log 86400"
#分剖错误日志

#305行,修改
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/accesss_%Y%m%d.log 86400"combined
#分割访问日志

#开头的|为管道符号。
#-l选项表示使用本地时间为时间基准
#86400表示一天,即每天生成一个新的日志文件



mkdir /var/log/httpd                    #创建分剖后的日志文件保存目录

systemctl restart httpd
ls /var/log/httpd                       #查看日志文件

使用第三方工具 cronolog 分割

#解压源码包
tar zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2


#然后编译安装
./configure
make && make install

#修改 Apache 的虚拟主机 httpd-vhost.conf 文件,将上面的内容修改为下面所示的内容
<VirtualHost *:80>
ServerAdmin administrator@kqn.cn
DocumentRoot "/usr/local/apache/htdocs"
ServerName www.test.com
ErrorLog "/usr/local/sbin/cronolog /usr/local/apachelogs/www.test.com-error _%Y%m%d.log"
CustomLog " /usr/local sbin/cronolog /usr/local/apachelogs/www.test.com-access_ %Y%m%d.log"combined
</VirtualHost>


#重启 Apache 服务,查看日志是否被分割

四、Apache日志分析

  • AWStats 是使用 Perl 语言开发的一款开源日志分析系统,它不仅可以用来分析Apache 网站服务器的访问日志,也可以用来完成自动化的日志统计与分析工作

#安装 AWStats 软件包
cd /opt
tar zxvf awstats-7.6.tar.gz
mv /opt/awstats-7.6  /usr/local/awstats


#执行日志分析,并设置 cron 计划任务
systemctl restart httpd.service
cd /usr/local/awstats/tools/
./awstats_updateall.pl now     #更新数据(根据站点配置文件指定的日志文件路径)

#设置定时任务进行刷新
crontab -e
*/5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now
systemctl start crond         
systemctl enable crond

总结

Apache 通过设置配置文件中相关的连接保持参数来开启与控制连接保持功能
httpd 服务通过 Order、Allow from 、Deny from 配置项实现客户机地址访问控制
为网站目录设置用户授权时,需先通过htpasswd 工具创建用户认证数据文件。
httpd 服务器的日志文件包括访问日志 access_log 与错误日志 error_log
?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-08 11:45:45  更:2021-10-08 11:47:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:34:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码