LAMP架構(五)

一  Apache用戶認證

此處用戶認證的意思是:須要瀏覽器對用戶進行認證,認證成功後用戶才能瀏覽網站內容,php

使用場景1:對網站進行用戶認證apache

一、在虛擬主機配置文件中加入如下內容;vim

<Directory /data/wwwroot/www.123.com>瀏覽器

    AllowOverride AuthConfigcurl

    AuthName "123.com user auth"ide

    AuthType Basic測試

    AuthUserFile /data/.htpasswd網站

    require valid-userui

</Directory>搜索引擎

二、生成密碼文件

    # /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd lijie

命令中的-c 表示建立,-m表示md5加密,/data/.htpasswd是密碼文件所在路徑,lijie是建立的用戶名

    隨後系統兩次提示輸入密碼,運行結果以下:

上圖能夠看到密碼文件中出現了一行字符串,冒號左邊是用戶名,右邊就是md5加密後的密碼

咱們再建立一個用戶

    # /usr/local/apache2.4/bin/htpasswd  -m /data/.htpasswd lj

此時命令中不須要-c建立的選項,能夠看到密碼文件中新增了用戶lj的加密後的密碼

三、從新加載配置

    # /usr/local/apache2.4/bin/apachectl -t  //檢查語法

    # /usr/local/apache2.4/bin/apachectl graceful  //從新加載

四、綁定主機

    # curl -x127.0.0.1:80 111.com

上圖能夠看到,此時提示401錯誤

咱們再來看下401是什麼意思?

上圖能夠看到401提示須要作用戶驗證,

一樣的咱們在瀏覽器打開的界面以下圖:

出現上述現象輸入用戶名密碼進行驗證便可,Linux下用戶名密碼輸入方式以下

    

上圖輸入用戶名密碼後能夠看到狀態碼已經變成200 OK 表示認證成功

使用場景2:針對某個文件設置用戶認證

一、須要加入的內容以下:

<FilesMatch admin.php>

    AllowOverride AuthConfig

    AuthName "123.com user auth"

    AuthType Basic

    AuthUserFile /data/.htpasswd

    require valid-user

</FilesMatch>

其中admin.php就是表示當匹配到這個文件時就須要作用戶驗證

二、從新加載配置

    # /usr/local/apache2.4/bin/apachectl -t  //檢查語法

    # /usr/local/apache2.4/bin/apachectl graceful  //從新加載

四、訪問主機及123.php

    新增文件123.php

      訪問主機# curl -x127.0.0.1:80 111.com -I

上圖咱們發現訪問主機不須要驗證用戶名和密碼就能成功登陸

可是當咱們訪問網站下的123.php頁面時就提示401錯誤,

# curl -x127.0.0.1:80 111.com/123.php -I

這時就須要進行用戶密碼驗證,以下

二 域名跳轉

也叫域名重定向

使用場景:新舊域名的切換時,老用戶的習慣保留,網站的SEO排名,若是有兩個域名網站內容同樣的話,搜索引擎會認爲新的域名是冒牌貨,而把較高的權重給舊域名,可是咱們想使用新域名的話,就須要作一個域名重定向跳轉,而且給一個永久跳轉的狀態碼301,這時搜索引擎就會認爲舊域名不用了,而降下就域名的權重,將全部的權重給新域名

    咱們要作的就是配置301跳轉

一、編輯虛擬主機配置文件

加入如下內容:

<IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} !^111.COM$
        RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]
</IfModule>

命令中301表示永久重定向,另外有一個狀態碼302表示臨時重定向

二、從新加載配置文件

    # /usr/local/apache2.4/bin/apachectl -t  //檢查語法

    # /usr/local/apache2.4/bin/apachectl graceful  //從新加載

三、檢測apache是否加載重定向模塊rewrite

    # /usr/local/apache2.4/bin/apachectl -M |grep rewrite  //檢測是否加載

 若是沒有加載,就須要手動去配置文件中加載

    # vi /usr/local/apache2.4/conf/httpd.conf  //編輯配置文件

    搜索rewrite

    去掉此行行首的#號

再次檢查rewrite模塊是否加載

上圖表示加載成功

四、測試域名跳轉是否成功

     測試域名跳轉成功與否 1# curl -x192.168.31.157:80 www.111.com -I

    測試跳轉URL 2# curl -x192.168.31.157:80 www.111.com 

    測試跳轉URL 3# curl -x192.168.31.157:80 www.111.com/213fdsffg

上面 測試URL不存在,但調轉是成功了的,只是咱們沒有寫這個頁面而已,提示的狀態碼是404,以下

換一個已經寫好的頁面,則提示200 OK ,說明域名跳轉成功

狀態碼403表示拒絕訪問,當httpd配置文件中的Require all granted被修改成Require all denied時就會出現此狀態提示

三 Apache訪問日誌

日誌目錄/usr/local/apache2.4/logs

查看域名跳轉實驗時候的logs以下

上圖中以HEAD開頭的表示是使用命令 curl 時留下的記錄,以GET開頭的表示的是加上-I時留下的記錄

但這個日誌格式比較簡單,咱們能夠先在主配置文件中查看下日誌格式

    # vim /usr/local/apache2.4/conf/httpd.conf

    修改下圖的LogFormat,框中引號內的參數,給咱們提供了common 和 combined兩種格式,默認使用的是common格式,咱們在上圖中看到的格式就是由下圖引號內的參數決定的

h : 來源IP

l:用戶

u:用戶

t: 時間

r:狀態碼

b:大小

User Agent :用戶代理,能夠是瀏覽器作代理或者使用curl命令訪問到網站,返回的內容是瀏覽器給的字段或curl相關給的字段

Referer:記錄瀏覽器上一次訪問的頁面,表示用戶是從哪一個頁面跳轉過來的

接下來咱們在虛擬主機配置文件中修改日誌格式

修改前:

修改後:

修改爲功後從新加載虛擬主機配置文件,再來訪問這個主機:

多訪問幾回後,咱們再來查看日誌

    # /usr/local/apache2.4/logs/111.com/access_log

 

推薦連接

apache虛擬主機開啓php的短標籤 http://ask.apelearn.com/question/5370

相關文章
相關標籤/搜索