Apache基礎配置與日誌管理解析

weixin_50345481發表於2020-11-26


前言

Apache HTTP Server之所以受到眾多企業的青睞,得益於其程式碼開源,跨平臺,功能模組化,可靈活定製等諸多優點,其不僅效能穩定,在安全性方面的表現也十分出色。就Apache基礎配置與日誌管理進行簡單解析。


一 Apache配置剖析

1.1 Apache連線保持

1.1.1 Apache連線保持相關引數

1.KeepAlive (預設是On)

是否開啟連線保持,OFF關閉,ON開啟

2.KeepAlive Timeout(預設超時時間5,保持連線狀態的時間)

一次連線多次請求之間的最大間隔時間,兩次請求超過該時間連線斷開

3.MaxKeepAliveRequests(預設100)

一次長連線能夠傳輸的最大請求數量

Apache 基礎服務配置

1.連線保持

[root@server1 ~]# vi /usr/local/httpd/conf/extra/httpd-default.conf 

2.預設配置

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

在這裡插入圖片描述

3.保證主配置檔案使用這些引數

[root@server1 ~]# vi /usr/local/httpd/conf/httpd.conf 
[root@server1 ~]# systemctl start httpd        啟動服務
[root@server1 ~]# netstat -anpt | grep httpd   檢視埠狀態
[root@server1 ~]# systemctl status httpd       檢視服務狀態
[root@server1 ~]# curl http://localhost        預設網頁

在這裡插入圖片描述
在這裡插入圖片描述

在瀏覽器上
http://20.0.0.10
在這裡插入圖片描述

4.檢視日誌檔案

[root@server1 ~]# cd /usr/local/httpd/logs/
[root@server1 logs]# ls -lh

-rw-r--r--. 1 root root 318 1125 14:15 access_log     訪問日誌
-rw-r--r--. 1 root root 700 1125 14:08 error_log         錯誤日誌

[root@server1 logs]# tail -5 access_log    檢視訪問的客戶機ip地址

在這裡插入圖片描述

1.2 Apache訪問控制

1.2.1 配置訪問控制

Require all granted :允許所有主機訪問
Require all denied : 拒絕所有主機訪問
Require local:       僅允許本地主機訪問
Require [not] host <主機名或域名列表>:允許或拒絕指定主機或域名訪問
Require [not] ip <IP 地址或網段列表>:允許或拒絕指定IP地址網路訪問
使用not禁止訪問時要講其置於<RequireAll></RequireAll>容器中並在指定相應的限制策略

1.2.2 用法解析

拒絕某一個指定地址訪問網頁

方法一:在網頁站點目錄中設定許可權

[root@server1 ~]# vi /etc/httpd.conf 
[root@server1 ~]# systemctl start httpd
[root@server1 ~]# systemctl status httpd

 Order deny,allow   順序,先拒絕後允許
 Deny from 20.0.0.1/32

在這裡插入圖片描述

在瀏覽器上
http://20.0.0.10
在這裡插入圖片描述
檢視錯誤日誌

[root@server1 ~]# cd /usr/local/httpd/logs/
[root@server1 logs]# tail -5 error_log 

在這裡插入圖片描述
方法二

[root@server1 logs]# vi /etc/httpd.conf 
[root@server1 logs]# systemctl start httpd
[root@server1 logs]# httpd -t
[root@server1 logs]# netstat -anpt | grep httpd
[root@server1 logs]# tail error_log 

<RequireAll>
    Require all granted
    Require not ip 20.0.0.1/32
</RequireAll>

在這裡插入圖片描述
在這裡插入圖片描述

在瀏覽器上
http://20.0.0.10
在這裡插入圖片描述

在客戶機20.0.0.11上進行驗證
http://20.0.0.10

在這裡插入圖片描述

1.3 Apache訪問控制概述

1.3.1 Apache訪問控制

作用

控制對網站資源的訪問
為特定的網站目錄新增服務授權

常用訪問控制方式

客戶機地址限制
使用者授許可權制

1.4 使用者授許可權制

1.4.1 建立使用者認證資料庫

[root@www ~]# cd /usr/local/ttpd/
[root@www httpd]# bin/htpasswd -C /usr/local/httpd/conf/ .awspwd

-C :新建使用,再次建使用者則不需要
/usr/local/httpd/conf/ .awspwd:新建密碼檔案

webadmin   認證使用者
New password:
Re-type new password:
Adding password for user webadmin
[root@www httpd]# cat /usr/ocal/httpd/conf/.awspwd 確認使用者資料庫檔案
webadmin:$apr1 $L _53Ws/ Y2$3L 4xhs4zZKDbJb.9p 1fNg.

1.4.2 新增使用者授權配置

[root@www ~ ]# vim /etc/httpd/conf/httpd.conf

<Directory "/usr/local/httpd/htdocs">

AuthName "DocumentRoot"  受保護的領域名稱
AuthType Basic   認證型別
AuthUserFile /etc/httpd/conf/ . awspwd使用者認證賬號檔案
Require valid-user       要求通過認證才能訪問
</Directory>
[root@www ~ ]# systemctl restart httpd

1.4.3 驗證使用者訪問授權

使用者名稱
密碼

1.5 專案小試

1.5.1 允許授權使用者登入

[root@server1 ~]# vi /etc/httpd.conf

ServerName www.aa.com:80

1.建立資料庫檔案

[root@server1 ~]# htpasswd -c /usr/local/httpd/conf/.awspwd tom
-C :新建使用,再次建使用者則不需要
/usr/local/httpd/conf/ .awspwd:新建密碼檔案
tom:  需要認證的使用者名稱

2.確認使用者資料庫檔案

[root@server1 ~]# cat /usr/local/httpd/conf/.awspwd  
[root@server1 ~]# vi /etc/httpd.conf 

在這裡插入圖片描述
3.配置編輯檔案

[root@server1 ~]# vi /etc/httpd.conf 
[root@server1 ~]# systemctl start httpd
[root@server1 ~]# vi /etc/hosts

Order allow,deny   順序先允許,後拒絕
Allow from all        允許所有
AuthName "www.aa.com" 認證域名
AuthType Basic      認證型別基本
AuthUserFile /usr/local/httpd/conf/.awspwd  認證檔案路徑
Require valid-user  允許授權使用者登入
#Require all granted

在這裡插入圖片描述

20.0.0.10   www.aa.com

在這裡插入圖片描述
在瀏覽器上
http://20.0.0.10
在這裡插入圖片描述

在這裡插入圖片描述

二 Apache日誌管理

2.1 日誌分割

1.隨著網站的訪問量增加,預設情況下Apache的單個日誌檔案也會越來越大

日誌檔案佔用磁碟空間很大
檢視相關資訊不方便

2.對日誌檔案進行分割

Apache自帶rotatelogs分割工具實現
第三方工具cronolog分割

2.2 專案小試

2.2.1 日誌分割

方法一 Apache自帶rotatelogs分割工具實現

1.編輯配置檔案

[root@server1 ~]# vi /etc/httpd.conf 
[root@server1 ~]# systemctl start httpd
[root@server1 ~]# systemctl status httpd

2.訪問日誌設定

ErrorLog "|/usr/bin/rotatelogs -l logs/error_log_%Y-%m-%d 86400"

-l:表示使用本地時間
/error_log:日誌名稱
%Y-%m-%d:年--86400:表示日誌分隔的間隔是1天,單位是秒

3.錯誤日誌設定

CustomLog "|/usr/bin/rotatelogs -l logs/access_log_%Y-%m-%d 86400" common

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
4.在瀏覽器上http://20.0.0.10

在這裡插入圖片描述

5.檢視日誌檔案

[root@server1 ~]# cd /usr/local/httpd/logs/
[root@server1 logs]# ls -lh

在這裡插入圖片描述
方法二 第三方工具cronolog分割
1 解壓縮安裝包

[root@server1 ~]# ls -lh
[root@server1 ~]# tar zxvf cronolog-1.6.2.tar.gz 

在這裡插入圖片描述

2.配置檔案

[root@server1 ~]# cd cronolog-1.6.2/
[root@server1 cronolog-1.6.2]# ./configure

3.編譯安裝

[root@server1 cronolog-1.6.2]# make && make install

4.檢視軟體路徑

[root@server1 cronolog-1.6.2]# which cronolog
/usr/local/sbin/cronolog
[root@server1 cronolog-1.6.2]# vi /etc/httpd.conf 

ErrorLog "|/usr/local/sbin/cronolog logs/error.log_%Y-%m-%d"
CustomLog "|/usr/local/sbin/cronolog logs/access.log_%Y-%m-%d" common

在這裡插入圖片描述
在這裡插入圖片描述

[root@server1 ~]# systemctl start httpd
[root@server1 ~]# httpd -t                              檢視語法
[root@server1 ~]# systemctl stop firewalld   關閉防火牆
[root@server1 ~]# setenforce 0                    關閉核心防護
[root@server1 ~]# cd /usr/local/httpd/logs/    檢視日誌檔案
[root@server1 logs]# ls -lh

在這裡插入圖片描述

2.2.2 使用AWstats日誌分析軟體

不同於日誌分割,是對整個日誌進行分析

[root@server1 ~]# vi /etc/httpd.conf 
[root@server1 ~]# systemctl start httpd
[root@server1 ~]# httpd -t
[root@server1 ~]# systemctl status httpd

ErrorLog "logs/error_log"
CustomLog "logs/access_log" common

在這裡插入圖片描述
在這裡插入圖片描述

在瀏覽器上
http://20.0.0.10
在這裡插入圖片描述

檢視日誌檔案

[root@server1 ~]# cd /usr/local/httpd/logs/
[root@server1 logs]# ls -lh

在這裡插入圖片描述

以上是基礎配置條件

開始正式配置

[root@server1 logs]# cd

1.確認是否載入cgi模組

[root@server1 ~]# apachectl -D DUMP_MODULES | grep cgi

2.檢視模組

[root@server1 ~]# cd /usr/local/httpd/modules/
[root@server1 modules]# ls -lh

在這裡插入圖片描述
在這裡插入圖片描述

3.配置檔案,開啟cgi模組

 [root@server1 modules]# vi /etc/httpd.conf 
[root@server1 modules]# cd

日誌分析工具與命令引用介面
LoadModule cgid_module modules/mod_cgid.so
LoadModule cgi_module modules/mod_cgi.so

在這裡插入圖片描述
4.解壓縮檔案

[root@server1 ~]# tar zxvf awstats-7.6.tar.gz 

在這裡插入圖片描述

5.AWstats可以同時分析多個站點的資料

[root@server1 ~]# mv awstats-7.6 /usr/local/awstats
[root@server1 ~]# vi /etc/hosts   對映記錄


20.0.0.10   www.aa.com

在這裡插入圖片描述

[root@server1 ~]# vi /etc/httpd.conf 

ServerName www.aa.com:80

在這裡插入圖片描述

[root@server1 ~]# cd /usr/local/
[root@server1 local]# ls -lh
[root@server1 local]# chown -R root.root awstats/
[root@server1 local]# cd awstats/
[root@server1 awstats]# ls -lh
[root@server1 awstats]# cd tools/    進入工具目錄
[root@server1 tools]# ./awstats_configure.pl   找到配置指令碼

在這裡插入圖片描述

輸入apache日誌檔案路徑(絕對路徑)
/usr/local/httpd/conf/httpd.conf
是否設定apache日誌檔案格式為combined(日誌檔案格式預設是common)
N
是否生成AWstats配置檔案
 y
輸入域名
www.aa.com
設定AWstats的配置檔案(回車,保持預設)
回車
生成AWstats的訪問路徑
http://localhost/awstats/awstats.pl?config=www.aa.com

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

6.編輯AWstats的配置檔案

[root@server1 tools]# vi /etc/awstats/awstats.www.aa.com.conf

LogFile="/usr/local/httpd/logs/access_log"
DirData="/var/lib/awstats"

在這裡插入圖片描述

在這裡插入圖片描述

[root@server1 tools]# cd
[root@server1 ~]# cd /var/lib/awstats
[root@server1 ~]# mkdir /var/lib/awstats   建立目錄

以上完成AWstats配置檔案修改完成

[root@server1 ~]# cd /usr/local/httpd/logs/
[root@server1 logs]# ls -lh
[root@server1 logs]# rm -rf access.log*
[root@server1 logs]# rm -rf error.log*

[root@server1 ~]# cd /usr/local/awstats/tools/
[root@server1 tools]# ls -lh

在這裡插入圖片描述
在這裡插入圖片描述

[root@server1 tools]# ./awstats_updateall.pl now   重新更新日誌,手動採集日誌

在這裡插入圖片描述

[root@server1 ~]# vi /etc/httpd.conf 
[root@server1 ~]# systemctl  stop httpd
[root@server1 ~]# systemctl start  httpd
新增
Require all granted

在這裡插入圖片描述

在瀏覽器上分別進行http://20.0.0.10,www.aa.com 操作,建立日誌

[root@server1 ~]# cd /usr/local/awstats/tools/
[root@server1 tools]# ./awstats_updateall.pl now

在這裡插入圖片描述

2.2.2.1 出現問題,AWStats無法顯示日誌資訊,內容

原因未設定apache日誌檔案格式為combined
需重新生成awstats訪問路徑

1.刪除錯誤的awstats配置檔案

[root@server1 tools]# cd
[root@server1 ~]# rm -rf /etc/awstats/awstats.www.aa.com.conf
[root@server1 ~]# cd -
[root@server1 tools]# ./awstats_configure.pl 

http://localhost/awstats/awstats.pl?config=www.aa.com

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

在這裡插入圖片描述

2.檢視apache日誌檔案格式

[root@server1 tools]# vi /etc/httpd.conf 
[root@server1 tools]# systemctl stop httpd
[root@server1 tools]# systemctl start httpd

CustomLog "logs/access_log" combined

在這裡插入圖片描述

3.編輯awstats的配置檔案

[root@server1 tools]# vi /etc/awstats/awstats.www.aa.com.conf
[root@server1 tools]# systemctl start httpd

LogFile="/usr/local/httpd/logs/access_log"

在這裡插入圖片描述

4.刪除包含錯誤日誌資訊的檔案

[root@server1 tools]# cd
[root@server1 ~]# cd /usr/local/httpd/logs/
[root@server1 logs]# ls -lh
[root@server1 logs]# rm -rf access_log 
[root@server1 logs]# ls -lh

在這裡插入圖片描述

5.重啟主機

init 6

[root@server1 ~]# systemctl status httpd
[root@server1 ~]# systemctl stop firewalld
[root@server1 ~]# setenforce 0

6.在不同主機瀏覽器上http://20.0.0.10

7.檢視日誌檔案

[root@server1 ~]# cd /usr/local/httpd/logs/
[root@server1 logs]# ls -lh

在這裡插入圖片描述
8.手動採集日誌

[root@server1 logs]# cd
[root@server1 ~]# cd /usr/local/awstats/tools/
[root@server1 tools]# ./awstats_updateall.pl now

在這裡插入圖片描述
在瀏覽器上進入awstats日誌

 http://localhost/awstats/awstats.pl?config=www.aa.com

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
通過以下配置頁面自動跳轉優化統計頁面訪問
即開啟一個網頁直接可以跳轉到分析日誌路徑網頁

[root@server1 ~]# cd /usr/local/httpd/htdocs/
[root@server1 htdocs]# vi a.html

<html>
<head>
<meta http-equiv=refresh content="0;url=http://20.0.0.10/awstats/awstats.pl?config=www.aa.com">
</head>
<body></body>
</html>

在這裡插入圖片描述
在這裡插入圖片描述

在瀏覽器上
http://20.0.0.10/a.html

在這裡插入圖片描述

2.3 AWStats日誌分析系統介紹

Perl語言開發的一款開源日誌分析系統
可用來分析Apache,Samba,Vsftpd,IIS等伺服器的訪問日誌
結合crond等計劃任務服務,可對日誌內容定期進行分析

總結

通過以上的瞭解,對Apache的認識層次又有了新的提升。

相關文章