其他分享
首页 > 其他分享> > apache 配置与应用

apache 配置与应用

作者:互联网

目录


引言

Apache HTTP Server 之所以受到众多企业的青睐,得益于其源代码开源,跨平台、功能模块化、可灵活定制等优点,其不仅性能稳定,在安全性方面的表现也十分出色。


一、Apache 连接保持

二、Apache 的访问控制

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

1. 客户机地址限制

allow,deny:先“允许”后“拒绝”,默认拒绝所有未明确允许的客户机地址。
deny,allow: 先“拒绝”后“允许”,默认允许所有未明确拒绝的客户机地址。
Deny from address1 address2 ···
Allow from address1 address2 ···
<Directory "/usr/local/httpd/htdocs">
……省略部分内容
Order allow,deny
Alow from all
</Directory>
<Directory "/usr/local/httpd/htdocs/wwwtest”>
……省略部分内容
Order allow,deny
Allow from 192.168.0.0/24 192.168.1.0/24
</Directory>
<Directory "/usr/local/httpd/htdocs/wwwroot”>
……省略部分内容
Order deny,allow
Deny from 192.168.0.0/24 192.168.1.0/24
</Directory>

2. 用户授权控制

2.1 创建用户认证数据文件

[root@www~]# cd /usr/local/httpd/
[root@www httpd]# bin/htpasswd -c /usr/local/httpd/conf/.awspwd webadmin
New password:                      				       #根据提示设置密码
Re-type new password:
Adding password for user webadmin
[root@www httpd]# cat /usr/loeal/httpd/conf/.awspwd    #确认用户数据文件
webadmin:2tmD3LVFynBAE
[root@www httpd]# bin/htpasswd /usr/local/httpd/conf/.awspwd lisi
New password:
Re-type new password:
Adding password for user kece
[root@www httpd]# cat/usr/local/httpd/conf.awspwd 	   #确认用户数据文件
webadmin:2tmD3LVFynBAE
lisi:In2Xw/KOGc.oA

2.2 添加用户授权配置

[root@www~]#vim/usr/local/httpd/conf/httpd.conf
......
<Directory "/usr/local/httpd/htdocs/autest">
......
AuthName "Auth Directory"
AuthType Basic
AuthUserFile /usr/local/httpd/conf/.awspwd
require valid-user
</Directory>
[root@www- ]#/usr/local/httpd/bin/apachectl restart           #重启服务使新配置生效

2.3 验证用户访问授权

当访问系统时,浏览器会首先弹出认证对话框,如下图所示。只有输入正确的用户名和密码才能查看日志分析报告,否则将会被拒绝访问。

在这里插入图片描述

三、Apache 日志分割

1. 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                       #查看日志文件

2. 使用第三方工具 cronolog 分割

tar zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make && make install
<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 写日志是根据文件的 i 节点,而不是文件名,所以有时候我们将Apache 日志文件重命名了,如果不重启 Apache 它还是会往重命名后的文件里面写入东西。

四、AWStats 日志分析

在 httpd 服务器的访问日志文件 access_log 中,记录了大量的客户机访问信息,通过分析这些信息,可以及时了解 Web 站点的访问情况,如每天或特定时间段的访问 IP 数量、点击量最大的页面等。

1. 部署 AWStats 分析系统

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

cd /opt
tar zxvf awstats-7.6.tar.gz
mv /opt/awstats-7.6  /usr/local/awstats
#切换到awstats/tools目录下执行脚本
cd /usr/local/awstats/tools
 ./awstats_configure.pl

指定 httpd 主配置文件的路径

.....
Config file path ( 'none' to skip web server setup) :

>/usr/local/httpd/conf/httpd.conf                 #输入httpd服务主配置文件的路径
>Your web site, virtual server or profile name :
>www.xxx.com                                      #输入要统计的站点域名

设置日志类型

将 httpd 服务器的日志记录格式改为“combined”,服务器可以在日志文件中记录更加详细的 Web 访问信息。因此,当提示是否修改日志类型时,建议选择“y”。然后配置脚本,将会自动修改 httpd.conf 配置文件,以添加访问 AWStats 系统的相关配置内容。

——>Check and complete web server config file 'usr/local/httpd/conf/httpd.conf'
Warming: You Apache config file contains directives to write 'common' log files
This means that some features can't work(os, browsers and keywords detection).
Do you want me to setup Apache to write 'combined log files [yN] ? y
Add 'Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"'
Add 'Alias /awstatsess "/usr/local/awstats/wwwroot/ess/"'
Add 'Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"'
Add 'ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"'
Add '<Directory>' directive
AWStats directives added to Apache config file.
----> Update model config file '/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf'
File awstats.model.conf updated.

为指定 Web 站点创建配置文件

----> 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]? y              #确认创建新的站点配置文件

-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name
> www.xxx.com                                          #指定要统计的目标网站名称

-----> Define config file path
In which directory do you plan to store your config file(s)?
Default:/etc/awstats
Directory path to store config file(s) (Enter for default):        #直接按Enter键接受默认设置
>
-----> Create config file '/etc/awstats/awstats.www.bt.com.conf
Config file /etc/awstats/awstats.www.bt.com.conf created.
vim /usr/local/httpd/conf/httpd.conf

#275行左右
Errorlog "logs/error_log"
#303行左右
CustomLog "logs/access_log" combined
.......
----143行左右--------
<IfModule !mpm_prefork_module>
        LoadModule cgid_module modules/mod_cgid.s    #取消注释
</IfModule>
<IfModule mpm_prefork_module>
        LoadModule cgi_module modules/mod_cgi.so     #取消注释
</IfModule>
-----481行左右------
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf                #将该行注释掉

#跳至末行修改
<Directory "/usr/local/awstats/wwwroot">
     Options None
     AllowOverride None
     #Order allow,deny  #注释
     #Allow from all    #注释
     Require all granted    #添加此行
 </Directory>
vim /etc/awstats/awstats.www.gcc.com.conf
LogFile="/usr/local/httpd/logs/access_log"  #设置Web日志文件位置
DirData="/var/lib/awstats"                 
#DisData用来指定数据目录,可采用默认值,但是需要创建指定的目录
mkdir /var/lib/awstats
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

2. 访问 AWStats 分析系统

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
echo "192.168.8.132 www.xxx.com” >>etc/hosts

#浏览器访问
http://www.xxx.com/awstats/awstats.pl?config=www.xxx.com

vim /usr/local/httpd/htdocs/aws.html
<html>
<head>
<meta http-equiv=refresh content="0;url=http:// www.kgc.com/awstats/awstats.pl?config=www.kgc.com">
</head>
<body></body>
</html>

HTML文件结构解释:
<html> </html>: 用于HTML文件结构最外层表示的标签
<head> </head>: 用于HTML网页内容描述信息的头标签
<body> </body>: 用于显示网页内容的内容标签
<meta>: 定义了HTML文档中的元数据,比如针对搜索引擎和更新频度的描述和关键词。这里的http-equiv-refresh用于实现网页自动跳转

总结

标签:httpd,conf,awstats,配置,usr,应用,apache,日志,local
来源: https://blog.csdn.net/jxc001102/article/details/120619198