01 企业网站架构部署与优化之Apache配置与应用

目录

3.1 Apache连接保持

3.2 Apache的访问控制

        3.2.1 客户机地址限制

        3.2.2 用户授权限制

                1. 创建用户认证数据文件

                2. 添加用户授权配置

                3. 验证用户访问授权

3.3 Apache日志分割

        1. Apache自带rotatelogs分割工具

        2. 使用第三方工具cronolog

3.4 AWStats日志分析

        3.4.1 部署AWStats分析系统

                1. 安装AWStats软件包

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

                3. 修改站点统计配置文件

                4. 执行日志分析,并设置cron计划任务

        3.4.2 访问AWStats分析系统


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

3.1 Apache连接保持

        HTTP是属于应用层的面向对象协议,基于TCP协议之上的可靠传输。每次在进行HTTP 连接之前,需要先进行TCP连接,在HTTP连接结束后要对TCP连接进行终止,每个TCР连接都需要进行三次握手与四次断开。HTTP协议不会对之前发生过的请求和响应进行管理,所以频繁地建立与关闭连接对于HTTP而言会消耗更多的内存与CPU资源。能不能允许通过同一个TCP连接发出多个请求,从而减少与多个连接相关的延迟,解决办法就是连接保持。

        对于HTTP/1.1,就是尽量地保持客户端的连接,通过一个连接传送多个HTTP请求响应,对于客户端可以提高50%以上的响应时间,对于服务器可以降低资源开销。

        Apache通过设置配置文件httpd-default.conf中相关的连接保持参数来开启与控制连接保持功能。

3.2 Apache的访问控制

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

        3.2.1 客户机地址限制

        通过Require配置项,可以根据客户端的主机名或IP地址来决定是否允许客户端访问。在httpd服务主配置文件的<Location>、<Directory>、<Files>、<Limit>配置段中均可以使用Require配置项来控制客户端的访问。使用Require 配置项时,需要设置客户端地址以构成完整的限制策略,地址形式可以是IP地址、网络地址、主机名或域名。当Require配置项之后为"all"时,表示匹配任意地址。限制策略的格式如下所示。

        通常情况下,网站服务器是对所有客户机开放的,网页文档目录并未做任何限制,因此使用的是"Require all granted"的策略,表示允许从任何客户机访问,策略格式如下所示。

        定义限制策略时,多个不带“not"的 Require配置语句之间是“或”的关系,即任意一条Require配置语句满足条件均可访问。若既出现了不带“not"的 Require配置语句,又出现了带"not"的 Require配置语句,则配置语句之间是"与"的关系,即同时满足所有Require 配置语句才能访问。

        需要使用“仅允许"的限制策略时,应使用Require配置语句明确设置允许策略,只允许一部分主机访问。例如,若只希望IP地址为173.17.17.2的主机能够访问,目录区域应做如下设置。

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

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

        3.2.2 用户授权限制

        httpd服务器支持使用摘要认证(Digest〉和基本认证(Basic)两种方式。使用摘要认证需要在编译httpd之前添加"--enable-auth-digest"选项,但并不是所有的浏览器都支持摘

        基于用户的访问控制包含认证(Authentication)和授权(Authorization)两个过程。认证是指识别用户身份的过程,授权是指允许特定用户访问特定目录区域的过程。下面将以基本认证方式为例,添加用户授权限制。

                1. 创建用户认证数据文件

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

        使用htpasswd工具时,必须指定用户数据文件的位置,添加"-c"选项表示新建立此文件。例如,执行以下操作可以新建数据文件lusr/local/httpd/confl.awspwd,其中包含一个名为webadmin的用户信息。

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

                2. 添加用户授权配置

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

        在上述配置内容中,相关配置项的含义如下。

        所有合法用户,若只授权给单个用户,可改为指定的用户名(如 webadmin)。

                3. 验证用户访问授权

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

3.3 Apache日志分割

        随着网站的访问量越来越大,默认情况下Apache服务器产生的单个日志文件也会越来越大,如果不对日志进行分割,那么如果日志文件占用磁盘空间很大的话势必会将整个日志文件删除,这样也丢失了很多对网站比较宝贵的信息,而这些日志可以用来进行访问分析、网络安全监察、网络运行状况监控等。

        另外,如果服务器遇到故障时,运维人员要打开日志文件进行分析,打开的过程会消耗艮长时间,也势必会增加处理故障的时间。因此管理好这些海量的日志对网站的意义很大,戈们会将Apache的日志进行按每天的日期自动分割。下面介绍两种方法均可实现。

        1. Apache自带rotatelogs分割工具

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

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

        重启Apache服务,查看日志文件是否已经按日期分割。

        2. 使用第三方工具cronolog

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

1)编译安装cronnlog工具

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

3.4 AWStats日志分析

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

        3.4.1 部署AWStats分析系统

        AwStats是使用Perl语言开发的一款开源日志分析系统,它不仅可用来分析Apache 网站服务器的访问日志,也可以用来分析Samba、Vsftpd、llS等服务的日志信息。结合crond等计划任务服务,可以对不断增长的日志内容定期进行分析。

        AwStats 的软件包可以从官方网站下载。下面以awstats-7.7.tar.gz软件包为例,介绍为Web站点www.kcg.com添加AWStats日志分析系统的过程。

                1. 安装AWStats软件包

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

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

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

        首先切换到 awstats/tools目录下,并执行其中的 awstats_configure.pl脚本。

        之后将会进入一个交互式的配置过程,将会检查 awstats的安装目录、httpd服务的配置文件路径等系统环境,并提示用户指定站点名称、设置配置文件路径。

1)指定httpd主配置文件的路径

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

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

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

 3)后续配置工作

        后续配置工作接下来将会尝试重启 httpd服务(支持使用/sbin/service httpd restart或/bin/systemctl restarthttpd.servic命令重启,需要有相关脚本,否则手动重启 apache 服务),然后设置cron计划任务( 7.6 版本尚不支持﹐需要根据提示使用lusr/local/awstats/tools/awstats_updateall.pl now命令,自行设置任务计划),按两次Enter键退出配置工具。

        Apache 2.4以上版本,因为重新定义了访问权限,所以需要将自动生成的 awstats 访问权限进行相应修改。同时,加载CGI模块。

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

                3. 修改站点统计配置文件

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

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

                4. 执行日志分析,并设置cron计划任务

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

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

        3.4.2 访问AWStats分析系统

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

        在该页面中,拖动窗口右侧的滚动条即可查看整个分析报告内容;或者单击左侧导航栏中的链接,可以选择查看其中的部分内容。

        在“按参观时间”类别下,可以查看每小时、每天、每周、每月的网站访问次数、网页数、文件数等信息。

        在“浏览器统计”类别下,可以查看用户的参观时间、所用的操作系统、浏览器版本、搜索本网站的关键词等相关信息。

        在访问AWStats系统时,需要指定awstats目录、脚本位置、统计目标等信息,这样既不便于记忆,输入时也比较麻烦。为了简化操作,可以在 Web根目录下建立一个自动跳转的HTML 网页。例如,执行以下操作后,用户只要访问 http://www.kgc.comlawb.html,即可自动跳转到www.kgc.com站点的AWStats日志分析页面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3227093.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

ns3学习笔记(四):路由概述

基于官网文档的 Routing Overview 部分详细研究一下ns3中路由是怎么工作的 文档链接16.4. Routing overview — Model Library 一、概述 NS3整体的工作架构如下&#xff1a; 路由部分的工作架构如下&#xff1a; 路由部分目前大多数用到的算法都包含在Ipv4RoutingProtocol部分…

【排序 - 插入排序 和 希尔排序】

插入排序&#xff08;Insertion Sort&#xff09;是一种简单直观的排序算法&#xff0c;它的工作原理是逐步构建有序序列。在排序过程中&#xff0c;它将未排序的元素逐个插入到已排序的部分中&#xff0c;从而在每次插入时扩展已排序序列的长度。 原理介绍 插入排序的基本思…

【计算机网络仿真】b站湖科大教书匠思科Packet Tracer——实验17 开放最短路径优先OSPF

一、实验目的 1.验证OSPF协议的作用&#xff1b; 二、实验要求 1.使用Cisco Packet Tracer仿真平台&#xff1b; 2.观看B站湖科大教书匠仿真实验视频&#xff0c;完成对应实验。 三、实验内容 1.构建网络拓扑&#xff1b; 2.验证OSPF协议的作用。 四、实验步骤 1.构建网…

Python办公自动化:增值税发票批量识别和核验

腾讯云免费体验地址: https://console.cloud.tencent.com/api/explorer?Product=ocr&Version=2018-11-19&Action=VatInvoiceVerifyNew 首先进行识别,这里以python为例子 # -*- coding: utf-8 -*- import jsonfrom tencentcloud.common.common_client import Commo…

随身WiFi市场乱象横生,随身WiFi测评最好的格行随身WiFi如何引领变革?

在当今随身WiFi市场乱象频发、内卷严重的背景下&#xff0c;消费者对于产品的性能与商家是否会后台割韭菜依旧存疑&#xff0c;尤其是“随身WiFi到底卡不卡&#xff1f;”的问题&#xff0c;成为了广大消费者关注的重点。然而&#xff0c;在众多品牌中&#xff0c;格行随身WiFi…

视频版权音乐处理☞AI分离人声、音效、背景音乐的需求和进展-2024

随着互联网的普及和短视频的兴起&#xff0c;视频内容的全球各大平台分发越来越普遍。然而&#xff0c;不同国家和地区的音乐版权、不同社媒平台拥有的版权和处理政策都存在差异&#xff0c;因此同一个视频在多渠道分发的时候就会产生版权侵权风险。如何既能满足全球多渠道、多…

类与对象-继承-同名成员处理

同名成员处理 #include<iostream> using namespace std;//继承中同名成员处理方式class Base { public:Base(){m_A 100;}void func(){cout << "Base - func()调用" << endl;}void func(int a){cout << "Base - func(int a)调用"…

springboot中通过jwt令牌校验以及前端token请求头进行登录拦截实战

前言 大家从b站大学学习的项目侧重点好像都在基础功能的实现上&#xff0c;反而一个项目最根本的登录拦截请求接口都不会写&#xff0c;怎么拦截&#xff1f;为什么拦截&#xff1f;只知道用户登录时我后端会返回一个token&#xff0c;这个token是怎么生成的&#xff0c;我把它…

第3章.中央服务器的物联网模式--企业系统集成

为了从物联网实施中获得最大价值&#xff0c;物联网系统需要与企业中的现有软件系统集成。事实上&#xff0c;与外部系统的集成允许网络世界和物理世界之间的交互——代表物理世界的物联网系统和驻留在网络/虚拟世界中的外部系统。用于此模式的符号如下图所示&#xff1a; 图3.…

首批!蚂蚁数科通过中国信通院面向大模型的可信执行环境产品专项测试

2024年6月17日&#xff0c;在中国信息通信研究院&#xff08;以下简称“信通院”&#xff09;组织的首批“面向大模型的增强型可信执行环境基础能力专项测试”中&#xff0c;蚂蚁数科摩斯顺利完成全部测试内容&#xff0c;成为首批完成此项测试的组织。 标准及测试介绍 《面向…

【深度学习】图形模型基础(6):模型优化理论

1.引言 在之前的讨论中&#xff0c;我们构建了一个理论模型来表达最优决策规则&#xff0c;这是建立在我们对数据的概率模型有充分理解的基础上的。相对地&#xff0c;经验风险最小化&#xff08;Empirical Risk Minimization, ERM&#xff09;策略则在缺乏精确概率模型的情况…

MVC之 Controller 》》 ModelState ValidationMessageFor ValidationSummary

ModelState是Controller的一个属性&#xff0c;可以被继承自System.Web.Mvc.Controller的那些类访问。它表示在一次POST提交中被提交到服务器的 键值对集合&#xff0c;每个记录到ModelState内的值都有一个错误信息集。尽管ModelState的名字中含有“Model”&#xff0c;但它只有…

医疗器械FDA |FDA网络安全测试具体内容

医疗器械FDA网络安全测试的具体内容涵盖了多个方面&#xff0c;以确保医疗器械在网络环境中的安全性和合规性。以下是根据权威来源归纳的FDA网络安全测试的具体内容&#xff1a; 一、技术文件审查 网络安全计划&#xff1a;制造商需要提交网络安全计划&#xff0c;详细描述产…

FLinkCDC引起的生产事故(二)

背景&#xff1a; 最近在做实时数据的抽取工作&#xff0c;利用FLinkCDC实时抽取目标库Oracle的数据到Doris中&#xff0c;但是在抽取的过程中&#xff0c;会导致目标库的生产库数据库非常卡顿&#xff0c;为了避免对生产环境的数据库造成影响&#xff0c;对生产环境的数据库利…

Java语言程序设计——篇三(1)

选择结构 概述选择单分支if语句例题讲解 双分支if-else语句例题讲解 条件运算符多分支的if-else语句例题讲解 嵌套的if语句例题讲解 switch语句结构例题讲解代码演示运行结果 概述 Java中的控制结构&#xff0c;包括&#xff1a; 1、选择结构( if、if-else、switch ) 2、循环结…

Linux系统学习 —— 计算机基础(笔记篇)

一、电脑硬件 电脑硬件由输入&#xff0c;控制计算&#xff0c;输出三部分组成。 输入部分包括键鼠&#xff0c;读卡器&#xff08;外部接口&#xff09;&#xff0c;扫描仪&#xff08;打印机的扫描仪&#xff09;。计算控制部分包括CPU &#xff0c; 内存&#xff0c;硬盘&…

眼外伤险失明辗转成都爱尔眼科就医保视力,患者复查送锦旗!

近日患者王先生到成都爱尔眼科医院进行硅油取出后的二次复查&#xff08;硅油为眼底病手术中一种“填充物”&#xff09;&#xff0c;他激动地为蔡裕主任献上锦旗&#xff0c;感谢医生的救治避免了失明。 意外发生在半年之前&#xff0c;王先生不慎滑倒右眼磕碰到茶几边缘&…

java算法day10

java算法day10 239滑动窗口最大值347前k个高频元素 239滑动窗口最大值 看灵神的题解学会的 精髓就在这张图 这个题用到了单调队列。首先知道为什么要使用单调队列&#xff0c;从这个问题来知道单调队列的好处。 首先就是我们模拟的窗口。滑动的这个过程显然就是一个队列元素…

《梦醒蝶飞:释放Excel函数与公式的力量》10.3 IMABS函数

第一节 10.3 IMABS函数 10.3.1 函数简介 IMABS函数是Excel中的一个工程函数&#xff0c;用于计算复数的绝对值&#xff08;模&#xff09;。在工程和科学计算中&#xff0c;复数的模是一个重要的概念&#xff0c;表示复数在复平面上到原点的距离。 10.3.2 语法&#xff1a; …

MT5016A-ASEMI逆变焊机专用MT5016A

编辑&#xff1a;ll MT5016A-ASEMI逆变焊机专用MT5016A 型号&#xff1a;MT5016A 品牌&#xff1a;ASEMI 封装&#xff1a;KBPC-4 批号&#xff1a;2024 现货&#xff1a;50000 正向电流&#xff08;Id&#xff09;&#xff1a;50A 反向耐压&#xff08;VRRM&#xff0…