Apache基礎配置與日誌管理解析
文章目錄
前言
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 11月 25 14:15 access_log 訪問日誌
-rw-r--r--. 1 root root 700 11月 25 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的認識層次又有了新的提升。
相關文章
- Apache基礎配置與日誌管理Apache
- Apache 配置日誌切割Apache
- Python - 基礎知識專題 - 配置檔案與日誌管理(正在寫作)Python
- Oracle 監聽器日誌配置與管理Oracle
- AIX基礎日誌AI
- 日誌分析-apache日誌分析Apache
- 開源元件ELK日誌系統配置與管理元件
- 重做日誌基礎操作
- Linux 日誌基礎Linux
- linux基礎日誌Linux
- CloudFlare Workers 日誌管理方案全解析Cloud
- MySQL redo與undo日誌解析MySql
- 網格RAC基礎日誌
- Linux-本地日誌服務管理(rsyslog基礎)Linux
- perl分析apache日誌Apache
- Apache日誌詳解Apache
- APACHE日誌檔案Apache
- Core + Vue 後臺管理基礎框架9——統一日誌Vue框架
- 日誌框架體系整理( 基礎 )框架
- Oracle重做日誌檔案基礎Oracle
- 日誌配置
- Django基礎之四(日誌)【待續】Django
- Crash日誌解析
- 玄機-第二章日誌分析-apache日誌分析Apache
- 零基礎寫框架(2):故障排查和日誌基礎框架
- 日誌管理
- Nginx實戰(三) 日誌配置與切割Nginx
- apache日誌中IP地址排序Apache排序
- Apache Camel日誌四種方法Apache
- Redis基礎篇(三)持久化:AOF日誌Redis持久化
- Oracle基礎 04 歸檔日誌 archivelogOracleHive
- Oracle基礎 05 聯機日誌 redologOracle
- oracle基礎練習5章 重做日誌Oracle
- Nginx日誌配置Nginx
- Django日誌配置Django
- 日誌服務之告警接入與管理
- 恢復模式與事務日誌管理模式
- MySQL 日誌管理、備份與恢復MySql