Apache基礎配置與日誌管理

wishy blog發表於2020-11-27

Apache配置

Apache連線保持

Apache連線保持相關引數

1.KeepAlive (預設是On)

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

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

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

3.MaxKeepAliveRequests(預設100)

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

Apache配置檔案

訪問控制檔案位置

vi /usr/local/httpd/conf/extra/httpd-default.conf 

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

預設配置

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

日誌檔案位置

 /usr/local/httpd/logs/

Apache訪問控制

啟動一下

vi /usr/local/httpd/conf/httpd.conf

找到下面這一條然後把#去掉

#Include conf/extra/httpd-default.conf

重啟httpd

systemctl stop httpd
systemctl start httpd

常用訪問控制方式

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

常用訪問控制的配置

選項說明
Require all granted允許所有主機訪問
Require all denied拒絕所有主機訪問
Require local僅允許本地主機訪問
Require [not] host <主機名或域名列表>允許或拒絕指定主機或域名訪問
Require [not] ip <IP 地址或網段列表>允許或拒絕指定IP地址網路訪問

使用not禁止訪問時要講其置於容器中並在指定相應的限制策略

客戶機地址限制

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

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

vi /etc/httpd.conf 

匹配下面的字元

AllowOverride controls

新增

    Order deny,allow
    Deny from 20.0.0.1/32

在這裡插入圖片描述

重啟前

在這裡插入圖片描述

重啟後

在這裡插入圖片描述

檢視錯誤日誌

tail -5 /usr/local/httpd/logs/error_log

在這裡插入圖片描述
把剛剛的控制刪掉在重啟就可以繼續訪問了

在這裡插入圖片描述

方法2

vi /etc/httpd.conf 

使用<RequireAll>

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

在這裡插入圖片描述

在這裡插入圖片描述

tail -5 /usr/local/httpd/logs/error_log

在這裡插入圖片描述

使用者授許可權制

1.建立使用者認證資料庫

建立一個使用者資料庫(由於做過連結可以直接使用命令)

htpasswd -c /usr/local/httpd/conf/.awspwd ljs

確認使用者資料庫檔案

cat /usr/local/httpd/conf/.awspwd

在這裡插入圖片描述

// A code block
var foo = 'bar';
    AllowOverride None
    Order allow,deny   
    Allow from all    
    AuthName "www.test.com"
    AuthType Basic  
    AuthUserFile /usr/local/httpd/conf/.awspwd  
    Require valid-user

在這裡插入圖片描述
解釋

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

重啟httpd

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

Apache日誌管理

日誌分割

為什麼日誌分割

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

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

如何對日誌檔案進行分割

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

Apache自帶rotatelogs分割工具實現

vi /etc/httpd.conf 
ErrorLog "|/usr/bin/rotatelogs -l logs/error_log_%Y-%m-%d 86400"

在這裡插入圖片描述

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

日誌檔案目錄

cd /usr/local/httpd/logs/

已經生成了一個檔案

在這裡插入圖片描述

第三方工具cronolog分割

在這裡插入圖片描述

解壓編譯安裝

tar xf cronolog-1.6.2.tar.gz 
./configure
make && make install

獲取絕對路徑

which cronolog

在這裡插入圖片描述

vi /etc/httpd.conf 
ErrorLog "|/usr/local/sbin/cronolog logs/error.cronolog_%Y-%m-%d"

在這裡插入圖片描述

在這裡插入圖片描述

使用AWstats日誌分析軟體

不同於前面的方法,AWstat是對整個日誌檔案進行操作,所以要把其餘的日誌分割操作去掉

準備軟體包

在這裡插入圖片描述

vi /etc/httpd.conf
ErrorLog "logs/error_log"

在這裡插入圖片描述
確認是否載入cgi模組

apachectl -D DUMP_MODULES | grep cgi

假如和我一樣沒有,需要去載入cgi模組

在這裡插入圖片描述

cd /usr/local/httpd/modules/

在這裡插入圖片描述

vi /etc/httpd.conf

在這裡插入圖片描述
重啟

tar xf awstats-7.6.tar.gz
mv awstats-7.6 /usr/local/awstats
cd /usr/local/
chown -R root.root awstats/
cd awstats/tools/

執行指令碼

./awstats_configure.pl

依次輸入

路徑

 /usr/local/httpd/conf/httpd.conf

在這裡插入圖片描述
然後網址

在這裡插入圖片描述
生成AWstats的訪問路徑

在這裡插入圖片描述
生成一個網址

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

編輯AWstats的配置檔案

vi /etc/awstats/awstats.www.test.com.conf
LogFile="/usr/local/httpd/logs/access_log"
DirData="/var/lib/awstats"

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

cd /usr/local/httpd/logs/

刪除多餘的日誌檔案

在這裡插入圖片描述

cd /usr/local/awstats/tools/

重啟主機

切換目錄

cd /usr/local/awstats/tools/

手動採集日誌

./awstats_updateall.pl now

在這裡插入圖片描述

vi /etc/httpd.conf
    #Order allow,deny
    #Allow from all
    Require all granted

在這裡插入圖片描述

輸入上面生成的網址

在這裡插入圖片描述
換一臺裝置使用IP地址訪問

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

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

在這裡插入圖片描述

直接自動跳轉

在這裡插入圖片描述

相關文章