首页 > 系统相关 >Linux中,Apache配置与应用

Linux中,Apache配置与应用

时间:2024-07-26 16:24:37浏览次数:18  
标签:配置文件 awstats 配置 用户 访问 Linux Apache 日志 Require

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

Apache连接保持

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

Apache的访问控制

为了更好地控制对网站资源的访问,可以为特定的网站目录添加访问授权。本节将分别介绍客户机地址限制、用户授权限制,这两种访问控制方式都应用于 httpd.conf配置文件中的目录区域<Directory 目录位置>…. </Directory>范围内。

客户机地址限制

通过 Require 配置项,可以根据客户端的主机名或 IP 地址来决定是否允许客户端访问。在 htpd 服务主配置文件的<Location>、<Directory>、<Files>、<Limit>配置段中均可以使用 Require 配置项来控制客户端的访问。使用 Require 配置项时,需要设置客户端地址以构成完整的限制策略,地址形式可以是IP 地址、网络地址、主机名或域名。当Require 配置项之后为“a"时,表示匹配任意地址。限制策略的格式如下所示。
Require all granted:允许所有主机访问:
Require all denied:拒绝所有主机访问:
Require loca:仅允许本地主机访问:
Require [not]host<主机名或域名列表>:允许或拒绝指定主机或域名访问;
Require [not]ip <IP 地址或网段列表>:允许或拒绝指定 |P 地址网络访问。
通常情况下,网站服务器是对所有客户机开放的,网页文档目录并未做任何限制,因此使用的是“Require all granted"的策略,表示允许从任何客户机访问,策略格式如下所示。

定义限制策略时,多个不带“not"的 Require 配置语句之间是“或”的关系,即任意一条Require 配置语句满足条件均可访问。若既出现了不带“not"的 Require 配置语句,又出现了带“not"的 Require 配置语句,则配置语句之间是"与"的关系,即同时满足所有 Require 配置语句才能访问。
需要使用“仅允许"的限制策略时,应使用 Require 配置语句明确设置允许策略,只允许一部分主机访问。例如,若只希望IP地址为 173.17.17.2的主机能够访问,目录区域应做如下设置。

反之,需要使用“仅拒绝"的限制策略时,灵活使用 Require与Require not 配置语句设置拒绝访问策略,仅禁止一部分主机访问。在使用not禁止访问时要将其置于<RequireAll></RequireAl>容器中,并在容器中设置相应的限制策略。例如,若只希望禁止来自两个内网网段 192.168.0.0/24和 192.168.1.0/24的主机访问,但允许其他任何主机访问,可以使用如下限制策略。

当未被授权的客户机访问网站目录时,将会被拒绝访问。

用户授权限制

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

创建用户认证数据文件

httpd 的基本认证通过校验用户名、密码组合来判断是否允许用户访问。授权访问的用户账号需要事先建立,并保存在固定的数据文件中。使用专门的htpasswd 工具程序,可以创建授权用户数据文件,并维护其中的用户账号。
使用 htpasswd 工具时,必须指定用户数据文件的位置,添加“-c”选项表示新建立此文件。例如,执行以下操作可以新建数据文件/usr/local/httpd/confl.awspwd,其中包含一个名为webadmin 的用户信息。

若省略"-c选项,则表示指定的用户数据文件已经存在,用于添加新的用户或修改现有用户的密码。例如,需要向.awspwd 数据文件中添加一个新用户 kcce 时,可以执行以下操作。

添加用户授权配置

 有了授权用户账号以后,还需要修改httpd.conf配置文件,在特定的目录区域中添加授权配置,以启用基本认证并设置允许哪些用户访问。例如,若只允许.awspwd 数据文件中的任一用户访问系统,可以执行以下操作。

在上述配置内容中,相关配置项的含义如下。
AuthName:定义受保护的领域名称,该内容将在浏览器弹出的认证对话框中显示。
AuthType:设置认证的类型,Basic表示基本认证。
AuthUserFile:设置用于保存用户账号、密码的认证文件路径。
require valid-user:要求只有认证文件中的合法用户才能访问。其中,valid-user 表示所有合法用户,若只授权给单个用户,可改为指定的用户名(如webadmin)。

验证用户访问授权

当访问系统时,浏览器会首先弹出认证对话框,如图31所示。只有输入正确的用户名和密码后才能查看特定目录下的网站资源,否则将拒绝访问

Apache日志分割

随着网站的访问量越来越大,默认情况下 Apache 服务器产生的单个日志文件也会越来越大,如果不对日志进行分割,那么如果日志文件占用磁盘空间很大的话势必会将整个日志文件删除,这样也丢失了很多对网站比较宝贵的信息,而这些日志可以用来进行访问分析、网络安全监察、网络运行状况监控等。
另外,如果服务器遇到故障时,运维人员要打开日志文件进行分析,打开的过程会消耗很长时间,也势必会增加处理故障的时间。因此管理好这些海量的日志对网站的意义很大,我们会将 Apache 的日志进行按每天的日期自动分割。下面介绍两种方法均可实现。

Apache自带rotatelogs分割工具

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

其中 ErrorLog 行是错误日志,-表示使用本地时间代替 GMT 时间作为时间基准。需要注意的是在一个改变 GMT 偏移量(比如夏令时)的环境中使用-会导致不可预料的结果。CustomLog行是定义访问日志格式,86400表示一天,即每天生成一个新的日志文件。
重启 Apache 服务,查看日志文件是否已经按日期分割。

使用第三方工具cronolog分割

除了 Apache 自带 rotatelogs 分割工具,也可使用第三方工具 cronolog 对 Apache 日志进行分割,具体操作如下所示。
(1)编译安装 cronolog 工具

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

awstats日志分割

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

部署awstats分析系统

AWStats 是使用 Per语言开发的一款开源日志分析系统,它不仅可用来分析Apache 网站服务器的访问日志,也可以用来分析 Samba、Vsftpd、llS 等服务的日志信息。结合 crond等计划任务服务,可以对不断增长的日志内容定期进行分析。
AWStats 的软件包可以从官方网站下载。下面以 awstats-7.7.tar.gz 软件包为例,介绍为 Web 站点 www.kcg.com 添加 AWStats 日志分析系统的过程。

安装awsrars软件包

Awstats 软件包的安装非常简单,只需将软件包解压到 httpd 服务器中的/usr/local/目录下即可。

为要统计的站点建立配置文件

AWVStats 系统支持统计多个网站的日志文件,通常以网站名称来区分不同的站点。因此,在执行日志文件分析之前,需要为每个Web站点建立站点统计配置文件,借助于AWStats 系统提供的 awstats_confgure.pl 脚本可以简化创建过程。
首先切换到 awstats/tools 目录下,并执行其中的awstats configure.pl 脚本。

之后将会进入一个交互式的配置过程,将会检查awstats的安装目录、httpd 服务的配置文件路径等系统环境,并提示用户指定站点名称、设置配置文件路径。
(1)指定 httpd 主配置文件的路径
配置脚本将查找并识别 htpd 服务的主配置文件,以便自动添加相关配置内容。如果未能在常见的安装路径中找到相关配置内容,则用户需要根据提示进行手工指定。

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

(3)后续配置工作
后续配置工作接下来将会尝试重启 httpd 服务(支持使用/sbin/service httpd restart 或/bin/systemctl restarthttpd.servic 命令重启,需要有相关脚本,否则手动重启 apache 服务),然后设置cron计划任务(76版本尚不支持,需要根据提示使用/usr/local/awstats/tools/awstats updateall.pl now 命令,自行设置任务计划),按两次 Enter键退出配置工具。
Apache 2.4 以上版本,因为重新定义了访问权限,所以需要将自动生成的 awstats 访问权限进行相应修改。同时,加载 CGI模块。

根据上述设置过程,为网站www.kgc.com新建立的站点统计配置文件将存放到/etc/awstats 目录下,文件名称为 awstats.www.kgc.com.conf。若还需要统计其他 Web 站点的日志,可以执行awstats confgure.pl 脚本创建新的配置文件。可以使用http://localhostawstats/awstats.pl?config=www.kgc.com 地址访问日志分析页面。

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

其中,LogFile 用来指定日志路径,应设置 Web 日志文件的实际位置;DirData 用来指定数据目录,可以采用默认值,但需要创建指定的目录(/var/lib/awstats)。

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

由于Web 日志文件的内容是在不断更新的,为了及时反馈网站访问情况,日志分析工作也需要定期、自动地执行。通过 crond 服务可设置计划任务,一般建议每五分钟执行一次日志分析任务。

访问awstats分析系统

访问站点 http://192.168.9.158/awstats/awstats.pl?config=www.kgc.com 后,即可看到AWStats 日志分析系统的统计页面,该页面分别按访问时间、用户来源、所用浏览器等类别列出各种详细的网站访问情况,如图3.2所示。若此处访问出现403Forbidden 错误,关闭 selinux 即可正常访问。

在该页面中,拖动窗口右侧的滚动条即可查看整个分析报告内容;或者单击左侧导航栏中的链接,可以选择查看其中的部分内容。
在“按参观时间”类别下,可以查看每小时、每天、每周、每月的网站访问次数、网页数、文件数等信息。
在“浏览器统计”类别下,可以查看用户的参观时间、所用的操作系统、浏览器版本、搜索本网站的关键词等相关信息。
在访问 AWStats 系统时,需要指定 awstats 目录、脚本位置、统计目标等信息,这样既不便于记忆,输入时也比较麻烦。为了简化操作,可以在Web 根目录下建立一个自动跳转的 HTML 网页。例如,执行以下操作后,用户只要访问 http:/ww.kgc.com/awb.html,即可自动跳转到 ww.kgc.com 站点的 AWStats 日志分析页面。

标签:配置文件,awstats,配置,用户,访问,Linux,Apache,日志,Require
From: https://blog.csdn.net/ssg18336543974/article/details/140700011

相关文章

  • mybatis-plus之配置安全
    1.环境SpringBoot2.6.x2.介绍MyBatis-Plus从3.3.2版本开始提供了数据安全保护功能,MyBatis-Plus支持通过加密配置来增强数据库的安全性。3.加密StringrandomKey=AES.generateRandomKey();System.out.println(randomKey);System.out.println(AES.encrypt("data",ra......
  • Linux 安装 ZenTao(禅道开源版)项目管理系统
    ZenTao(禅道)是一款优秀的开源项目管理软件,适用于各种规模的团队。本教程将指导您在Linux系统上安装ZenTao开源版。1.系统要求Linux操作系统(本教程以Ubuntu为例)root权限或sudo权限稳定的网络连接2.安装步骤2.1进入安装目录首先,进入 ​​/opt​​ 目录:cd......
  • 如何在 Windows 上配置 Java 开发环境
    配置Java开发环境是Java开发者的基础任务之一。本文将指导你如何在Windows操作系统上安装Java开发工具包(JDK)并设置相应的环境变量,确保你的开发环境能够正确编译和运行Java程序。第一步:下载和安装JDK访问JDK下载网站:前往Oracle官方网站或其他JDK提供商......
  • 对Linux目录结构的补充
                                               ......
  • Linux系统(在线)安装、卸载docker环境
    一安装1安装需要的软件包yum-util提供yum-config-manager功能,另外两个是devicemapper驱动依赖的sudoyuminstall-yyum-utilsdevice-mapper-persistent-datalvm22设置yum源sudoyum-config-manager--add-repohttps://download.docker.com/linux/centos/docker-ce.re......
  • SQL Server 2008 下载 安装 配置
    将压缩包 SQLServer2008R2.rar压到当前目录下:点击蓝色字体下载压缩包提取码2rlf1,双击Setup:2,点击左侧安装点击全新安装或向现有安装添加功能:3,点击确定:4,点击输入产品密钥自动输入的点击下一步:5,勾选我接受许可条款点击下一步:6,点击安装:7,等待安装......
  • 自定义Linux操作日志配置
    方案一:使用acct工具记录步骤1   通过设置日志文件可以对每个用户的每一条命令进行纪录,这一功能默认是不开放的,为了打开它,我们要确认已经安装了acct工具:#Debian、Ubuntu、SUSE下叫acctapt-getinstallacctzypperinstallacct#CentOS、RHEL、Fedora上叫psacctyu......
  • android[activity过渡动画不正确,不执行,效果不对?]style配置方式
    单个配置activity或者application全局配置<stylename="translucent"parent="Theme.MaterialComponents.Light.NoActionBar"><itemname="android:windowNoTitle">true</item><itemname="android:windowTitleSize&qu......
  • Nacos 配置中心配置发布源码分析
    前言:前面系列文章中我们分析了Nacos客户端的配置加载、配置热更新、Nacos服务端的配置加载、配置转储到磁盘文件中等,本篇我们来分析一下Nacos配置的发布逻辑。Nacos系列文章传送门:Nacos初步认识和Nacos部署细节Nacos配置管理模型–命名空间(Namespace)、配置......
  • 搭建.Net WebApi并配置Swagger(一)
    C#进阶之WebAPI(一)那么首先第一点:什么是WebAPI?首先我们了解一下.netframework的框架构成:   可以看到,WebAPI和mvc同属于B/S模板框架的一种,官方对于WebApi的定义是:WebAPI是一个框架,可以轻松构建HTTP服务,覆盖广泛的客户端,包括浏览器和移动设备,WebAPI是在.NetFramwo......