Apache 虚拟目录,用户授权限制,日志分割与AWS分析系统
一:Apache 的连接保持(长链接)
#Apache 的连接保持配置在 /usr/lcoal/httpd/conf/extra/httpd-default.conf 配置文件中
# 使用yum 安装的apache服务在主配置文件 /etc/httpd/conf/httpd.conf中
vim /usr/local/httpd/conf/extra/httpd-default.conf
Timeout 60
#两个TCP 包之间的超时时间,超过这个时间,则断开连接
KeepAlive On
#打开连接保持功能。ON 表示打开,OFF 表示关闭,一般在高并发的时候打开
MaxKeepAliveRequests 100
#一次长链接中可以传输的最大请求数量,超过则会断开。一般设置数量会多过网站中的所有元素
KeepAliveTimeout 5
#设置来自同一个客户端,一次连接多次请求之间的最大间隔时间,即,两次请求之间超过该值,会自动断开连接,以免客户端占用连接资源
二:构建 web 虚拟目录
当我们网站根目录设置为 /usr/local/httpd/htdocs/ 时,访问 http://192.168.23.13/test 网页,应该是访问 网站根目录下的 test 目录里的网页文件。
但是,当我们设置了虚拟目录,设置了test 目录的别名是 /var/www/html 时,访问 http://192.168.23.13/test 网页, 访问的就是 /var/www/html/ 目录下的网页文件
2.1 在 /var/www/html 下写下首页文件
mkdir -p /var/www/html/
echo "<h1>this is alias web<h1>" > /var/www/html/index.html
2.2 在配置文件中设置web 虚拟目录
vim /usr/local/httpd/conf/httpd.conf #在文件末尾添加
Alias /test /var/www/html/ #设置当访问test 目录时改为访问 /var/www/html/ 目录下文件
systemctl restart httpd
firefox http://192.168.23.13/test
三:用户授权限制
3.1 创建用户认证数据文件
cd /usr/local/httpd/bin/ ./htpasswd -c /usr/local/httpd/userlist zhangsan #第一次创建要加 -c 生成用户数据文件, 创建的用户是用来认证的,而不是系统用户 # 用户数据文件位置 可以自定义,但是 最好放在httpd 的工作目录中 ./htpasswd /usr/local/httpd/userlist lisi #第二次就不用 加上 -c cat /usr/local/httpd/userlist
3.2 添加用户授权配置
vim /usr/local/httpd/conf/httpd.conf #在配置文件末尾添加
<Directory /> #设置站点根目录
AuthName "Hello" #设置认证对话框显示
AuthType Basic #认证类型为 基本认证
AuthUserFile /usr/local/httpd/userlist #设置用户数据认证文件位置
Require valid-user #仅允许认证文件中的用户访问
</Directory>
systemctl restart httpd
firefox http://192.168.23.13
Apache 自带 rotatelogs 分割工具 ,将 Apache 的日志进行按每天的日期自动分割
vim /usr/local/httpd/conf/httpd.conf
ErrorLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/error_%F.log 86400"
CustomLog "| /usr/local/bin/rotatelogs -l /var/log/httpd/access_%F.log 86400" combined
#开头为 | 管道符号
#-l 选项表示使用本地时间为时间基准
#86400 表示一天,即每天生成一个新的日志文件
mkdir /var/log/httpd
systemctl restart httpd
curl http://192.168.23.13
curl http://192.168.23.13/xxx
ls /var/log/httpd
#在 /var/log/httpd 目录下 生成了 当天的成功访问日志 和 失败访问日志
五 AWStats 分析系统
AWSstats 是使用perl 语言开发的一款开源日志分析系统,它用来完成自动化的日志分析工作
5.1 将软件包传到/opt 目录下
awstats -7.6.tar.gz
5.2 安装AWStats 软件
cd /opt
tar zxvf awstats-7.6.tar.gz
mv /opt/awstats-7.6 /usr/local/awstats
5.3 为要统计的站点建立配置文件
cd /usr/local/awstats/tools
./awstats_configure.pl
......
Config file path ('none' to skip web server setup):
> /usr/local/httpd/conf/httpd.conf
......
Your web site, virtual server or profile name:
> www.mynet.com
#其他都是y或者回车
5.4修改自动生成的awstats 访问权限,加载CGI模块(Apache 2.4 以上版本需要加载CGI模块)
vim /usr/local/httpd/conf/httpd.conf
ErrorLog "logs/error_log"
CustomLog "logs/access_log" combined
<IfModule !mpm_prefork_module>
LoadModule cgid_module modules/mod_cgid.so #打开注释,大致在142行
</IfModule>
<IfModule mpm_prefork_module>
LoadModule cgi_module modules/mod_cgi.so #打开注释,大致在145行
</IfModule>
#跳转到文件莫问
<Directory "/usr/local/awstats/wwwroot">
Options None
AllowOverride None
#Order allow,deny #加上注释
#Allow from all #加上注释
Require all granted #添加此行
</Directory>
5.5 修改站点统计配置文件
vim /etc/awstats/awstats.www.mynet.com.conf
LogFile="/usr/local/httpd/logs/access_log" #修改访问日志文件位置(由于日志格式问题,不能设置虚拟主机的日志
DirData="/var/lib/awstats" #目录默认不存在,需要手动创建
mkdir /var/lib/awstats
5.6 执行日志分析,并设置crom 计划任务
systemctl restart httpd
cd /usr/local/awstats/tools/
./awstats_updateall.pl now #更新数据(根据站点配置文件指定的日志文件路径获取日志数据
crontab -e
*/5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now
systemctl restart crond
5.7 访问AWStats 分析系统站点
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
echo "192.168.23.13 www.mynet.com" >> /etc/hosts
firefox http://www.mynet.com/awstats/awstats.pl?config=www.mynet.com
5. 8优化网页地址
vim /usr/local/httpd/htdocs/aws.html
<html>
<head>
<meta http-equiv=refresh content="0;url=http://www.mynet.com/awstats/awstats.pl?config=www.mynet.com">
</head>
<body></body>
</html>
firefox http://www.mynet.com/aws.html #访问这个网站,自动跳转
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现