Apache用戶認證,域名跳轉,Apache訪問日誌 原

11月15日任務

11.18 Apache用戶認證
11.19/11.20 域名跳轉
11.21 Apache訪問日誌

1.Apache用戶認證

  •  vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把123.com那個虛擬主機編輯成如下內容
  • <VirtualHost *:80>    
  • DocumentRoot "/data/wwwroot/www.123.com"
  •  ServerName www.123.com    
  • <Directory /data/wwwroot/www.123.com> //指定認證的目錄        
  • AllowOverride AuthConfig //這個相當於打開認證的開關        
  • AuthName "123.com user auth" //自定義認證的名字,作用不大        
  • AuthType Basic //認證的類型,一般爲Basic,其他類型阿銘沒用過        
  • AuthUserFile /data/.htpasswd  //指定密碼文件所在位置        
  • require valid-user //指定需要認證的用戶爲全部可用用戶    
  • </Directory>
  • </VirtualHost>  
  • /usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd aming  用Apache自帶的密碼工具生成一個密碼
  • 重新加載配置-t , graceful  
  • 綁定hosts,瀏覽器測試  
  • curl -x127.0.0.1:80 www.123.com //狀態碼爲401  
  • curl -x127.0.0.1:80 -uaming:passwd www.123.com //狀態碼爲200 指定用戶名和密碼

實驗:一

  • 編輯vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把123.com那個虛擬主機編輯成如下內容

  • 生成密鑰,-m 是指定加密類型,-c是創建

  • 重新加載一下

  • 訪問一下,提示要用戶認證

  • -u 指定用戶認證密碼與用戶

實驗:二

  • 還可以針對單個文件進行認證
  • <VirtualHost *:80>    
  • DocumentRoot "/data/wwwroot/www.123.com"
  •     ServerName www.123.com    
  • <FilesMatch admin.php>        
  • AllowOverride AuthConfig        
  • AuthName "123.com user auth"        
  • AuthType Basic        
  • AuthUserFile /data/.htpasswd        
  • require valid-user    
  • </FilesMatch>
  • </VirtualHost>

 

  • 配置更改一下

  • 重新加載一下

  • 編輯一下123.PHP文件

  • 訪問其他的不會401,訪問123.php纔會認證

 

2. 域名跳轉

  • 需求,把123.com域名跳轉到www.123.com,配置如下:
  • <VirtualHost *:80>    
  • DocumentRoot "/data/wwwroot/www.123.com"
  • ServerName www.123.com    
  • ServerAlias 123.com    
  • <IfModule mod_rewrite.c> //需要mod_rewrite模塊支持        
  • RewriteEngine on  //打開rewrite功能        
  • RewriteCond %{HTTP_HOST} !^www.123.com$  //定義rewrite的條件,主機名(域名)不是www.123.com滿足條件
  •  RewriteRule ^/(.*)$ http://www.123.com/$1 [R=301,L] //定義rewrite規則,當滿足上面的條件時,這條規則纔會執行 </IfModule>
  • </VirtualHost>  
  • /usr/local/apache2/bin/apachectl -M|grep -i rewrite //若無該模塊,需要編輯配置文件httpd.conf,刪除rewrite_module (shared) 前面的#  
  • curl -x127.0.0.1:80 -I 123.com //狀態碼爲301

 

實驗:一

  • 編輯一下配置

 

  • 重新加載一下

  • 檢查這個模塊是否加載,沒有加載的話,就編輯這個文件

  • /rewrite 搜索一下,取消#號,打開模塊

  • 重新加載一下這個模塊

  • 測試一下,301就表示是域名跳轉的

 

3.Apache訪問日誌

示例一:

  • 訪問日誌記錄用戶的每一個請求  
  • vim /usr/local/apache2.4/conf/httpd.conf //搜索LogFormat
  • LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 會記錄referer和user-agent。
  • LogFormat "%h %l %u %t \"%r\" %>s %b" common  簡單記錄日誌
  • 把虛擬主機配置文件改成如下:  
  • <VirtualHost *:80>    
  • DocumentRoot "/data/wwwroot/www.123.com"
  • ServerName www.123.com    
  • ServerAlias 123.com    
  • CustomLog "logs/123.com-access_log" combined  定義爲記錄referer和user-agent格式的日誌
  • </VirtualHost>  
  • 重新加載配置文件 -t,graceful  
  • curl -x127.0.0.1:80 -I 123.com  
  • tail /usr/local/apache2.4/logs/123.com-access_log

 

  • 查看一下logs日誌

  • /LogFormat 搜索一下,日誌的格式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章