25期Linux20180529 Apche 認證 訪問日誌 域名跳轉
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 認證 訪問日誌 域名跳轉