httpd重定向跳轉和更詳細的日誌記錄
httpd的頁面登錄認證
在httpd的虛擬主機配置文件中添加用戶認證的密碼的相關配置
<VirtualHost *:80> ? DocumentRoot "/usr/local/httpd/docs/123.com" ? ServerName 123.com ? ServerAlias www.123.com ? <directory /usr/local/httpd/docs/123.com> ? AllowOverride AuthConfig ? AuthName "Please is passwd :" ? AuthType Basic ? AuthUserFile /usr/local/httpd/conf/htpasswd ? require valid-user ? </Directory> ? ErrorLog "logs/123.com-error_log" ? CustomLog "logs/123.com-access_log" common </VirtualHost>
directory 指定需要認證的網頁根目錄,訪問此目錄下的網頁都需要輸入認證的賬戶名和密碼
AllowOverride AuthConfig 賬戶密碼認證的生效配置,保持此配置即可
AuthName 賬戶密碼認證輸入時提示的信息
AuthType Basic 賬戶密碼認證的類型,常用Basic的類型即可
AuthUserFile /usr/local/httpd/conf/htpasswd 指定賬戶密碼配置文件的目錄
require valid-user 指定需要認證的用戶為全部可用的用戶(配置文件內的用戶)
使用httpd下的htpasswd文件來添加用戶認證的名稱及密碼,第一次創建密碼認證的文件時,必須要加-c選項,這樣才能創建一個保存用戶和密碼的認證文件,後續新添加用戶則不再需要使用-c選項
[root@www extra]# /usr/local/httpd/bin/htpasswd -c /usr/local/httpd/conf/htpasswd user New password: Re-type new password: Adding password for user user ? ? ? ? ? [root@www extra]# /usr/local/httpd/bin/htpasswd /usr/local/httpd/conf/htpasswd user1 New password: Re-type new password: Adding password for user user1 [root@www extra]# cat /usr/local/httpd/conf/htpasswd user:$apr1$Xh6mrleA$/PHet3mzd4ZKbk7eLTMfH1 user1:$apr1$zK/oShKB$Q7.pLsBHEsphBA6HnCl0E/
重新加載一下httpd的配置[root@www extra]# /usr/local/httpd/bin/apachectl graceful
訪問域名檢驗用戶認證設置的結果
域名跳轉
httpd設置域名跳轉
<VirtualHost *:80>
? DocumentRoot "/usr/local/httpd/docs/abcd.com"
? ServerName abcd.com
? ServerAlias www.abcd.com
? ErrorLog "logs/abcd.com-error_log"
? CustomLog "logs/abcd.com-access_log" common
? <IfModule mod_rewrite.c>
? RewriteEngine on
? RewriteCond %{HTTP_HOST} !^111.com$
? RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]
? </IfModule>
</VirtualHost>
IfModule mod_rewrite.c ? 表示需要mod_rewrite模塊支持
RewriteEngine ?表示大考rewrite功能
RewriteCond 定義了rewrite跳轉的條件
RewriteRule ?定義rewrite規則,滿足RewriteCond條件時,會執行這裏定義的規則
查看httpd是否加載了rewrite模塊,若沒有rewrite模塊(httpd編譯時大都會把這個模塊安裝上),按照下個步驟加載rewrite
[root@www conf]# /usr/local/httpd/bin/apachectl -M |grep rewrite
rewrite_module (shared)
打開httpd配置文件中的rewrite模塊,查找rewrite的模塊所在行去掉註釋重新加載httpd配置文件即可
[root@www conf]# vim httpd.conf
~
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
[root@www conf]# /usr/local/httpd/bin/apachectl graceful
測試域名跳轉的訪問請求,配置文件裏指定了301標識,這裏的301也表示為域名跳轉的標識
[root@www conf]# curl -x127.0.0.1:80 http://www.abcd.com -I
HTTP/1.1 301 Moved Permanently
Date: Sun, 29 Jul 2018 17:48:31 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.37
Location: http://111.com/
Content-Type: text/html; charset=iso-8859-1
httpd日誌
httpd日誌記錄,在主配置文件中查找到LogFormat段的配置,LogFormat這裏是讓日誌以特定形式記錄保存,可以在這裏自定義日誌格式
<IfModule log_config_module>
? ?#
? ?# The following directives define some format nicknames for use with
? ?# a CustomLog directive (see below).
? ?#
? LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
? LogFormat "%h %l %u %t \"%r\" %>s %b" common
Referer是記錄點擊頁面請求的信息
User-Agebt是記錄訪問段瀏覽器類型的信息
在虛擬主機中定義記錄更詳細的日誌
[root@www httpd]# vim conf/extra/httpd-vhosts.conf
-------------------------省略的配置---------------------------------
? ErrorLog "logs/123.com-error_log"
? CustomLog "logs/123.com-access_log" combined ? <---記錄模式,更為詳細的日誌信息
</VirtualHost>
重新加載httpd生效服務的配置
[root@www httpd]# /usr/local/httpd/bin/apachectl graceful
對比修改前後記錄的日誌內容,日誌記了客戶端訪問的瀏覽器類型,訪問頁面和操作系統等信息
192.168.1.112 - - [30/Jul/2018:00:56:33 +0800] "GET / HTTP/1.1" 401 381
192.168.1.112 - - [30/Jul/2018:00:57:13 +0800] "GET /favicon.ico HTTP/1.1" 401 381
192.168.1.112 - - [30/Jul/2018:00:57:13 +0800] "GET /favicon.ico HTTP/1.1" 401 381
192.168.1.112 - user [30/Jul/2018:04:39:41 +0800] "GET / HTTP/1.1" 200 7
192.168.1.112 - user [30/Jul/2018:04:44:07 +0800] "GET / HTTP/1.1" 200 7 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"
192.168.1.112 - user [30/Jul/2018:04:44:08 +0800] "GET / HTTP/1.1" 200 7 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"
192.168.1.112 - user [30/Jul/2018:04:44:09 +0800] "GET / HTTP/1.1" 200 7 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"
httpd重定向跳轉和更詳細的日誌記錄