Apache配置與應用

F靚仔發表於2020-11-27

一、Apache連線保持

1 Apache連線保持相關引數

  • KeepAlive:是否開啟連線保持,預設開啟ON,關閉Off
  • KeepAliveTimeout:一次連線多次請求之間的最大間隔時間,兩次請求超過該時間連線斷開
  • MaxKeepAliveRequests:一次長連線能夠傳輸的最大請求數量

1.配置檔案配置
在這裡插入圖片描述
在這裡插入圖片描述

[root@server1 ~]# systemctl start httpd
[root@server1 ~]# systemctl status httpd
[root@server1 ~]# systemctl stop firewalld
[root@server1 ~]# setenforce 0
[root@server1 ~]# netstat -anpt | grep httpd
[root@server1 ~]# curl http://localhost

在這裡插入圖片描述
抓包步驟:
在這裡插入圖片描述

二、Apache訪問控制

作用:控制對網站資源的訪問,為特定的網站目錄新增訪問許可權

常用訪問控制方式:

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

1.訪問控制常用配置引數

<RequireALL>  ##此類寫法需寫在開始結束標籤內
Require all granted				##允許所有主機訪問
Require all denied				##拒絕所有主機訪問
Require local				##僅允許本地主機訪問
Require 【not】 host <主機名或域名列表>	##允許或拒絕指定主機或域名訪問
Require 【not】 ip <地址或網段列表>		##允許或拒絕指定IP地址網路訪問	
</RequireALL>

Order deny,allow		##設定允許和拒絕的順序
Deny from 12.0.0.13		##拒絕12.0.0.13網段訪問

2.拒絕訪問方式一

新增中間兩行規則可以使某指定ip無法訪問httpd網頁

<Directory "/usr/local/httpd/htdocs">
Order deny, allow
Deny from 20.0.0.13/21
</Directory>

在這裡插入圖片描述
但是其它的ip地址的依舊可以訪問
在這裡插入圖片描述
可以使用日誌檔案檢視網站的訪問情況,可以看出被拒絕訪問
在這裡插入圖片描述

3.拒絕訪問方式二

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

在這裡插入圖片描述

tail -5 /usr/local/httpd/logs/error_logs  ## 檢視錯誤日誌檔案資訊

在這裡插入圖片描述

三、日誌分割

1.日誌分割的重要性

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

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

對日誌檔案進行分割

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

2.日誌分割的配置檔案

Apache 自帶 rotatelogs 分割工具

vi /etc/httpd.conf
ErrorLog "|/usr/bin/rotatelogs -l logs/error_log_%Y-%m-%d 86400"
CustomLog "|/usr/bin/rotatelogs -l logs/access_log_%Y-%m-%d 86400" common
systemctl restart httpd
ls /usr/local/httpd/logs/
使用第三方工具 cronolog 分割
tar zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make && make install
設定 cronolog 工具工具分割 apache 日誌
vi /usr/local/httpd/conf/httpd.conf
ErrorLog "|/usr/local/sbin/cronolog /var/log/httpd/www.51xit.top-error_%Y%m%d.log" 
CustomLog "|/usr/local/sbin/cronolog /var/log/httpd/www.51xit.top-access_%Y%m%d.log" common
systemctl restart httpd

在這裡插入圖片描述
其中日誌目錄下會產生新的檔案

四、日誌分析

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

1.配置httpd、dns服務

[root@localhost ~]# yum install httpd bind -y
	[root@localhost ~]# vim /etc/named.conf 
	options {
        listen-on port 53 { any; };
    .......省略內容
    allow-query     { any; };
	[root@localhost ~]# vim /etc/named.rfc1912.zones
	.......省略內容
	zone "aaa.com" IN {
    type master;
    file "aaa.com.zone";
    allow-update { none; };
	......省略內容
	[root@localhost ~]# cd /var/named/
	[root@localhost named]# cp -p named.localhost aaa.com.zone
	[root@localhost named]# vim aaa.com.zone
	www  IN A       20.0.0.13
	[root@localhost named]# systemctl start named
	[root@localhost named]# vim /etc/httpd/conf/httpd.conf 
	Listen  20.0.0.13:80
	#Listen 80
	ServerName www.aaa.com:80
	[root@localhost named]# setenforce 0
	[root@localhost named]# iptables -F
	[root@localhost named]# systemctl start httpd.service 

2.配置AWStats服務

[root@localhost named]# cd /usr/local/awstats/tools/
[root@localhost tools]# ./awstats_configure.pl 
> /etc/httpd/conf/httpd.conf '//第一次互動輸入此路徑
' y //第二次互動輸入y
www.aaa.com //第三次互動輸入指定域名
//第四五六次互動直接回車

[root@localhost tools]# vim /etc/awstats/awstats.www.cllt.com.conf
LogFile="/var/log/httpd/access_log"   
DirData="/var/lib/awstats"  
[root@localhost tools]# cd /var/lib
[root@localhost lib]# mkdir awstats
[root@localhost lib]# systemctl restart httpd

使用剛剛互動生成的網址訪問,將其中的localhost修改為指定域名訪問awstats網頁
在這裡插入圖片描述
在伺服器中輸入更新資料的命令

[root@localhost lib]# cd /usr/local/awstats/tools/
[root@localhost tools]# ./awstats_updateall.pl now

在這裡插入圖片描述
因為手動重新整理資料是很麻煩的,可以將此任務加入到週期性任務中

[root@localhost tools]# crontab -e
* /5 * * * * /usr/local/awstats/tools/awstats_updateall.pl now
[root@localhost tools]# systemctl restart httpd

相關文章