1. 程式人生 > >25期Linux20180529 Apche 認證 訪問日誌 域名跳轉

25期Linux20180529 Apche 認證 訪問日誌 域名跳轉

apache日誌跳轉 認證

5月29日任務

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


11.18 Apache用戶認證

所謂用戶認證就是進入80端口對應的頁面的時候,也就是通過apache的時候,設置了用戶密碼也就是安全認證。雖然一般不會用到,

但是在管理員賬號登錄頁面也許會多加這麽一層安全認證。


技術分享圖片


打開虛擬主機配置文件。 vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 。因為第一個是默認虛擬主機,所以可以對第二個配置進行修改。

技術分享圖片

<Directory /data/wwwroot/www.hqigroup.com.au> #指定認證的目錄

AllowOverride AuthConfig #這個相當於打開認證的開關

AuthName "hqigroup user auth" #自定義認證的名字,作用不大

AuthUserFile /data/.htpasswd #指定密碼文件所在位置

require valid-user #指定密碼文件所在位置

</Directory>


以上就定義了需要認證的配置,其中有一個是指定密碼文件的所在位置,這就要求了還是需要一個地方來放密碼文件,包括用戶名和密碼。

Linux有一個命令來生成密碼,那就是htpasswd


/usr/local/apache2/bin/htpasswd -c -m /data/.htpasswd bill

這樣就創建一個md5加密的密碼文件位置是/data/.htpasswd 用戶名是bill 密碼自己輸入

技術分享圖片

可以看到用戶和密碼(加密後的)

技術分享圖片

當給第二個以及以後增加用戶的時候,因為這個文件已經存在了,所以就不需要加-c這個參數了,因為不需要再創建文件了。

技術分享圖片


然後重新加載以下, 做測試。

/usr/local/apache2/bin/apachectl -t

技術分享圖片

出錯了。找錯嘍,37行。

原來不能在後面加#註釋,註釋都刪除以後就沒有了。

技術分享圖片

/usr/local/apache2/bin/apachectl graceful


然後可以curl進行測試,應該是會出現402狀態碼,但是我出現的是200,也就是可以正常訪問的狀態碼這樣就不對了。

curl -x127.0.0.1:80 www.hqigroup.com.au -I

找錯:

因為directory和root目錄應該是同一個。

技術分享圖片

這個時候使用curl -x127.0.0.1:80 www.hqigroup.com.au -I

技術分享圖片

技術分享圖片

這樣就可以了,匹配在虛擬主機裏配置的用戶和密碼。


針對特定目錄

註意用的不是directory而是filesmatch

其實就是在某個站點下的某一個目錄進行認證。

<FilesMatch 文件名>

技術分享圖片

技術分享圖片

然後看下面的當直接訪問這個域名的時候已經不會是401了,而訪問下面的123.php的時候成了401.

技術分享圖片


技術分享圖片

也可以直接curl 用戶名 密碼來訪問內容

curl -x127.0.0.1:80 -u用戶名:密碼 www.hqigroup.com.au/123.php

技術分享圖片



11.19/20 域名跳轉

技術分享圖片

背景介紹:

域名跳轉的需求,比如有些網站內容不再繼續了,設置一下跳轉到新的站點。

SEO搜索引擎在這裏起到一定的作用。百度的蜘蛛來到服務器抓走了頁面放到數據庫,用戶搜索的時候會去比對,找到相關的頁面出來。

這就牽扯到另一個關於搜索排名的問題了。權重越高,排名越靠前。而判斷網站就是靠看他的域名。如果一個網站有倆域名的話會被搜索引擎認為其中一個是假的,所以最好只有一個服務器,另一個域名跳轉。

301 永久跳轉,一般這麽使用。

302 臨時重定向,對於seo來說不友好。不降低之前域名的權重,也就不增加之後的域名權重。

還是要編輯 虛擬主機文件

技術分享圖片

首先要用到一個魔窟mod_rewrite。需要這個模塊支持,打開,並定義rewrite的條件和規則。

技術分享圖片

<IfModule mod_rewrite.c> mod_rewrite模塊支持

RewriteEngine on 打開rewrite功能

RewriteCond %{HTTP_HOST} !^www.hqigroup.com.au$ 定義rewrite的條件,主機名(域名)不是www.hqigroup.com.au滿足條件,正則,!表示的是取反,^開始 $結束

RewriteRule ^/(.*)$ http://www.hqigroup.com.au/$1 [R=301,L] 定義規則,當滿足上面條件是,規則執行

</IfModule>


保存完文件之後,需要測試是否有語法錯誤,重新加載,檢查是否這個模塊打開,如果沒打開要到apache的配置文件中去打開。

技術分享圖片

技術分享圖片

然後再檢查,就發現已經加載了。

技術分享圖片

然後檢查,加載後可以測試了。

技術分享圖片

技術分享圖片


再看如果url/xxx 的實驗,也實現了跳轉的新域名後面加之前的xxx

技術分享圖片


也會有403的代碼,這種就是將apache的配置文件裏的 all granted 改成 denied 403禁止。


以上就是域名的跳轉/重定向



Apache的訪問日誌


技術分享圖片


訪問日誌就是去訪問/請求的歷史記錄。

技術分享圖片

logs的目錄是 /usr/local/apache/logs

技術分享圖片

訪問日誌裏可以看到如下

技術分享圖片

但是這種日誌格式太簡單,不能自定義,如果想自定義的話就需要到 /usr/local/apache2/conf/httpd.conf去定義

vim進入到配置文件後找到logformat

技術分享圖片

系統默認使用的是common 所以上面看到的log字段就是這個格式來的。

技術分享圖片

特別指出一下 referer是來源頁面 user-agent是代理,瀏覽器之類


所以這裏接下裏是要更改虛擬主機的配置文件,/usr/local/apache/conf/extra/httpd-vhosts.conf 將common改成combined

技術分享圖片

然後 -t graceful

curl -x127.0.0.1:80 www.example.com -I

技術分享圖片

看看log的結果,前兩條是curl,最後一個是瀏覽器訪問

技術分享圖片

這裏只有user-agent信息,因為不是從一個目錄跳轉過來,所以沒有referal信息。

25期Linux20180529 Apche 認證 訪問日誌 域名跳轉