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

Apache配置与应用

时间:2024-07-24 17:58:19浏览次数:16  
标签:httpd www conf awstats 配置 应用 Apache 日志 root

Apache连接保持及访问控制

  • HTTP 是属于应用层的面向对象协议,基于 TCP 协议之上的可靠传输。每次在进行HTTP 连接之前,需要先进行 TCP 连接,在 HTTP 连接结束后要对 TCP 连接进行终止,每个 TCP 连接都需要进行三次握手与四次断开,HTTP 协议不会对之前发生过的请求和响应进行管理,所以频繁地建立与关闭连接对于 HTTP 而言会消耗更多的内存与 CPU 资源。能不能允许通过同一个 TCP 连接发出多个请求,从而减少与多个连接相关的延迟,解决办法就是连接保持
  • Apache通过设置配置文件httpd-default.conf中相关的连接保持参数来开启与控制连接保持功能
    • KeepAlive:决定是否打开连接保持功能,后面接 OFF 表示关闭,接 ON 表示打开,可以根据网站的并发请求量决定是否打开,即在高并发时打开连接保持功能,并发量不高时关闭此功能
    • KeepAliveTimeout:表示一次连接多次请求之间的最大间隔时间,即两次请求之间超过该时间连接就会自动断开,从而避免客户端占用连接资源
    • MaxKeepAliveRequests:用于设置在一次长连接中可以传输的最大请求数量,超过此最大请求数量就会断开连接,最大值的设置决定于网站中网页的内容,一般设置数量会多于网站中所有的元素

客户机地址限制

  • 在 httpd 服务主配置文件的、、、配置段中均可以使用 Require 配置项来控制客户端的访问
  • 使用 Require 配置项时,需要设置客户端地址以构成完整的限制策略,地址形式可以是IP 地址、网络地址、主机名或域名
  • 当 Require 配置项之后为“a”时,表示匹配任意地址

Require all granted

允许所有主机访问

Require all denied

拒绝所有主机访问

Require local

仅允许本地主机访问

Require [not]host

允许或拒绝指定主机或域名访问

Require [not] ip

允许或拒绝指定 IP 地址网络访问

//格式
<Directory "/usr/local/httpd/htdocs">
.. //省略部分内容
Require all granted
</Directory>

用户授权限制

  • httpd 服务器支持使用摘要认证(Digest)和基本认证(Basic)两种方式
    • 使用摘要认证需要在编译 httpd 之前添加“--enable-auth-digest”选项,但并不是所有的浏览器都支持摘要认证;而基本认证是 httpd 服务的基本功能,不需要预先配置特别的选项
  • 基于用户的访问控制包含认证(Authentication)和授权(Authorization)两个过程
    • 认证是指识别用户身份的过程,授权是指允许特定用户访问特定目录区域的过程
1:创建用户认证数据文件

        htpd 的基本认证通过校验用户名、密码组合来判断是否允许用户访问。授权访问的用户账号需要事先建立,并保存在固定的数据文件中。使用专门的 htpasswd 工具程序,可以创建授权用户数据文件,并维护其中的用户账号

//使用 htpasswd 工具时,必须指定用户数据文件的位置,添加“-c”选项表示新建立此文件
[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 /usrlocal/httpd/conf/.awspwd        //确认用户数据文件
webadmin:$apr1$L53Ws/2$3L4xhs4zZKDbJb.9p1fNg.

//若省略“-c”选项,则表示指定的用户数据文件已经存在,用于添加新的用户或修改现有用户的密码
[root@www httpd]# bin/htpasswd /usr/local/httpd/conf/.awspwd kcce
New password:
Re-type new password:
Adding password for user kcce

[root@www httpd]# cat /usr/local/httpd/conf.awspwd //确认用户数据文件
webadmin:$apr1$L53Ws/2$3L4xhs4zZKDbJb.9p1fNg.
kcce:$apr1$OJIFi4TA$FaVYZnH2KH5KCOSHJHAWD0
2:添加用户授权配置

        有了授权用户账号以后,还需要修改 httpd.conf配置文件,在特定的目录区域中添加授权配置,以启用基本认证并设置允许哪些用户访问

[root@www ~# 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@www ~]# systemctl restart httpd    //重启服务使配置生效
  • AuthName:定义受保护的领域名称,该内容将在浏览器弹出的认证对话框中显示
  • AuthType:设置认证的类型,Basic表示基本认证
  • AuthUserFile:设置用于保存用户账号、密码的认证文件路径
  • require valid-user:要求只有认证文件中的合法用户才能访问。其中,valid-user 表示所有合法用户,若只授权给单个用户,可改为指定的用户名(如webadmin)

Apache日志分割

  • 随着网站的访问量越来越大,默认情况下 Apache 服务器产生的单个日志文件也会越来越大,如果不对日志进行分割,那么如果日志文件占用磁盘空间很大的话势必会将整个日志文件删除,这样也丢失了很多对网站比较宝贵的信息
  • 如果服务器遇到故障时,运维人员要打开日志文件进行分析,打开的过程会消耗很长时间,也势必会增加处理故障的时间
1:Apache自带rotatelogs分割工具

将 Apache 主配置文件 httpd.conf打开,配置网站的日志文件转交给 rotatelogs分割处理

[root@www ~]# mkdir /var/log/httpd/
[root@www ~]# vim /usr/local/httpd/conf/httpd.conf
ErrorLog "/usr/local/bin/rotatelogs - /var/log/httpd/error %Y%m%d.log 86400"
CustomLog "/usr/local/bin/rotatelogs - /arlog/httpd/access %Y%m%d.log 86400"combined
//其中 ErrorLog 行是错误日志,-表示使用本地时间代替 GMT 时间作为时间基准,需要注意的是在一个改变 GMT 偏移量(比如夏令时)的环境中使用-1会导致不可预料的结果
//CustomLog 行是定义访问日志格式,86400表示一天,即每天生成一个新的日志文件
2:使用第三方工具cronolog分割

(1)编译安装cronolog

[root@www ~]# tar zxvf cronolog-1.6.2.tar.gz
[root@www ~]# cd cronolog-1.6.2
[root@www cronolog-1.6.2]# ./configure
[root@www cronolog-1.6.2]# make && make install

(2)设置 cronolog 工具工具分割 apache 日志

[root@www ~]# vim /usr/local/httpd/conf/httpd.conf
ErrorLog "/usr/local/sbin/cronolog /varlog/httpd/www.kgc.com-error %Y%m%d.log"
CustomLog "/usr/local/sbin/cronolog/var/log/httpd/www.kgc.com-access %Y%m%d.log" combined

[root@www ~]# systemctl restart httpd

[root@www ~]#ll /var/log/httpd/|grep"www.kgc.com"
-rw-r--r-- 1 root root 1501月11 20:45 www.kgc.com-access 20200101.10g
-rw-r--r-- 1 root root 588 1月 11 20:45 ww.kgc.com-error 20200101.10g

部署AWStats日志分析

  • 在 httpd 服务器的访问日志文件 access log 中,记录了大量的客户机访问信息,通过分析这些信息,可以及时了解 Web 站点的访问情况,如每天或特定时间段的访问 IP 数量,点击量最大的页面等
  • AWStats 是使用 Per语言开发的一款开源日志分析系统,它不仅可用来分析Apache 网站服务器的访问日志,也可以用来分析 Samba、Vsftpd、llS 等服务的日志信息。结合 crond等计划任务服务,可以对不断增长的日志内容定期进行分析
        1:安装AWStats软件包
[root@www ~]# tar zxf awstats-7.7.tar.gz
[root@www ~]# mv awstats-7.7 /usr/local/awstats            //移动awstats文件
        2:为要统计的站点建立配置文件

                AWStats 系统支持统计多个网站的日志文件,通常以网站名称来区分不同的站点。因此,在执行日志文件分析之前,需要为每个Web 站点建立站点统计配置文件,借助于AWStats 系统提供的 awstats confiqure.pl 脚本可以简化创建过程

//首先切换到 awstats/tools 目录下,并执行其中的 awstats configure.pl 脚本
[root@www ~l# cd /usr/locallawstats/tools/
[root@www tools]# chmod +x awstats configure.pl
[root@www tools]# ./awstats configure.pl
//将会进入一个交互式的配置过程,将会检査 awstats 的安装目录、httpd 服务的配置文件路径等系统环境,并提示用户指定站点名称、设置配置文件路径

//指定 httpd 主配置文件的路径
//配置脚本将查找并识别 htpd 服务的主配置文件,以便自动添加相关配置内容。如果未能在常见的安装路径中找到相关配置内容,则用户需要根据提示进行手工指定
...
>/usr/local/httpd/conf/httpd.conf        //输入 httpd.conf 配置文件的路径

//为指定 Web 站点创建配置文件
//根据提示继续选择“y”以创建站点配置文件,并指定要统计的目标网站名称、站点配置文件的存放位置(默认为/etc/awstats)
...
>www.kgc.com                //指定要统计的目标网站名称

//到最后的网址: http://localhost/awstats/awstats.pl?config=www.kgc.com   复制一下
//后续配置工作接下来将会尝试重启 htpd 服务(支持使用/sbin/service httpd restart 或/bin/systemctl restarthttpd.servic 命令重启,需要有相关脚本,否则手动重启 apache 服务)
[root@www ~]# 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
</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>
[root@www ~]# systemctl restart httpd
//根据上述设置过程,为网站 www.kgc.com 新建立的站点统计配置文件将存放到/etc/awstats 目录下,文件名称为 awstats.www.kgc.com.conf
//若还需要统计其他 Web 站点的日志,可以执行 awstats_configure.pl 脚本创建新的配置文件
//可以使用http://localhost/awstats/awstats.pl?config=www.kgc.com 地址访问日志分析页面
3:修改站点统计配置文件

        为站点 www.kgc.com 建立好配置文件以后,还需要对其做进一步的修改。修改的内容主要包括指定要分析的 Web 日志文件和指定用来存放统计数据的目录

[root@www ~]#vim /etc/awstats/awstats.www.kgc.com.conf
LogFile="/usr/local/httpd/logs/access log"
DirData="/var/lib/awstats"
......//省略部分内容
[root@www ~]#mkdir /var/lib/awstats
//其中,LogFile 用来指定日志路径,应设置Web 日志文件的实际位置;DirData 用来指定数据目录,可以采用默认值,但需要创建指定的目录(var/lib/awstats)
4:执行日志分析,并设置cron 计划任务

        使用 AWStats 提供的 awstats updateall.pl 脚本,可以更新所有站点(根据站点配置文件)的日志统计数据。执行该脚本时,系统将会自动分析新增的日志内容,并将分析结果更新到统计数据库中

//由于 Web 日志文件的内容是在不断更新的,为了及时反馈网站访问情况,日志分析工作也需要定期、自动地执行。通过 crond 服务可设置计划任务,一般建议每五分钟执行一次日志分析任务
[root@www ~]# crontab -e
*/5****/usr/local/awstats/tools/awstats updateall.pl now

访问AWStats分析系统

  • 访问站点 http://192.168.10.101/awstats/awstats.pl?config=www.kgc.com 后,即可看到AWStats 日志分析系统的统计页面,该页面分别按访问时间、用户来源、所用浏览器等类别列出各种详细的网站访问情况,若此处访问出现 403 Forbidden 错误,关闭 selinux 即可正常访问
  • 在访问 AWStats 系统时,需要指定 awstats 日录、脚本位置、统计目标等信息,这样既不便于记忆,输入时也比较麻烦。为了简化操作,可以在 Web 根目录下建立一个自动跳转的 HTML 网页。例如,执行以下操作后,用户只要访问 htp:/www.kgc.com/awb.html即可自动跳转到 www.kgc.com 站点的 AWStats 日志分析页面
[root@www ~]# vim /var/www/html/awb.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>

标签:httpd,www,conf,awstats,配置,应用,Apache,日志,root
From: https://blog.csdn.net/minly12/article/details/140668496

相关文章

  • 新手教学系列——如何在MacOS 10.13.6(老系统)手动安装和配置Pyenv
    前言对于使用老旧系统(如MacOS10.13.6)的用户来说,安装和管理Python版本可能会遇到一些挑战。特别是由于Homebrew不再支持老系统,许多软件安装变得困难重重。本文将详细介绍如何在这样的环境下手动安装和配置Pyenv,让你能够顺利管理Python版本。为什么选择Pyenv?Pyenv是一个简......
  • 代理IP地址的高效配置与实测解析
    面对市场上琳琅满目的代理服务,如何找到那个既高效又可靠的伙伴,成为了摆在我们面前的一道难题。今天,测评团队将带您深入探索两家备受瞩目的代理IP服务商,通过实测数据与配置技巧,为您揭开它们高效运作的秘密。一、极光HTTP配置便捷性解析极光HTTP以其简洁明了的配置界面和详尽......
  • Ubuntu配置OpenSSH(ssh)
    目录一.安装OpenSSH服务器1.更新软件包列表2.升级所有可升级的软件包3.安装OpenSSH4.允许root用户通过SSH登录5.设置SSH服务开机自启动6.修改配置文件7.重启SSH8.开放防火墙端口二、其他命令1.查看SSH服务状态2.启动SSH服务3.设置SSH服务开机自启4......
  • pycharm配置及python环境相关配置
     python虚拟环境不同项目依赖的第三方包的版本可能不一样,这样一个环境就没法同时开发不同的项目,所以需要创建不同的虚拟环境virtualenv用户创建独立的python环境,多个python项目互相独立互不影响安装方法pipinstallvirtualenv创建虚拟环境virtualenvvenv会......
  • k8s配置文件之deployment配置
    deployment使用并管理rs,算是更高一层的概念,这是现在比较常用的部署app的方式。deployment为pod和rs提供声明式更新(而非命令式)。支持滚动更新(rollingUpdate),支持回滚操作资源配置主要分五类来定义内容 一:apiVersion【string】 APIVersion定义对象表示的版本,此处为:apps/......
  • Linux下jdk安装及环境变量配置
    一、解压安装jdk 将下载好的压缩文件复制到/usr/local/src目录下进入/usr/local/src并解压:cd/usr/local/src&&tarxvf[压缩文件名称]二、配置环境变量(推荐使用第三种或第四种)配置之前需要根据实际情况在命令行设置JAVA_HOME:例如(/usr/local/src/jdk1.8.0_......
  • Centos7下安装配置最新版本Jenkins(2.452.3)
    1、基础环境配置1.1服务器下载Jenkins安装包下载地址:https://www.jenkins.io/download/下载命令:wgethttps://get.jenkins.io/war-stable/2.452.3/jenkins.war1.2服务器安装配置JDKJenkins是基于Java语言开发的,因此需要Java运行环境支持。安装JDK前一定要看下当前要......
  • 厨房秤电子秤方案pcba方案设计开发应用
    厨房秤方案的设计和开发涉及多个方面,‌包括硬件设计、‌软件操作、‌功能特性等,‌以满足不同用户的需求。‌以下是一些关键点的概述:‌硬件设计:‌厨房秤的硬件设计包括采用高精度的传感器,‌这些传感器能够感知食材的重量并将其转化为电信号。‌称盘通常由不锈钢或塑料制成......
  • c#配置swagger文档
    .netcore6.0注入swagger,.netcore配置swagger文档6.1号更新token验证 builder.Services.AddSwaggerGen(c=>{//添加token验证c.AddSecurityDefinition("Bearer",newOpenApiSecurityScheme{Description="请输入token,格式为Bearerxxxxxxxx",......
  • Jenkins下配置java的静态代码检测:findbugs、pmd及checkstyle实现代码自动检测
    一、插件介绍工具目的检查项FindBugs检查.class基于BugPatterns概念,查找javabytecode(.class文件)中的潜在bug主要检查bytecode中的bugpatterns,如NullPoint空指针检查、没有合理关闭资源、字符串相同判断错(==,而不是equals)等Duplicatecode帮助开......