apache用戶認證-域名跳轉-apache訪問日誌

apache用戶認證:

1.編輯虛擬主機配置文件:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.confphp

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com
    <Directory /data/wwwroot/111.com>
    #指定認證的目錄
        Allowoverride AuthConfig
        #該行至關於打開用戶認證的開關
        AuthName "111.com user auth"
        #自定義認證的名字,做用不大
        AuthType Basic
        #認證類型,通常爲basic
        AuthUserFile /data/.htpasswd
        #指定密碼文件所在位置(須要手動添加)
        require valid-user
        #設定須要認證的用戶爲「AuthUserFile」中定義的全部可用用戶
     </Directory>
    ErrorLog "logs/111.com-error_log"
    CustomLog "logs/111.com-access_log" common
</VirtualHost>

 

2.建立「httpd-vhosts.conf」中指定的密碼文件:/usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd zjyhtml

#在「/data/.htpasswd」爲用戶zjy(自動建立)建立一個使用MD5算法加密的密碼文件;-c建立,第一次建立才用;-mMD5算法linux

 

3.從新加載配置:算法

/usr/local/apache2.4/bin/apachectl -tapache

/usr/local/apache2.4/bin/apachectl gracefulvim

 

4.測試: curl -x192.168.8.131:80 111.com -I瀏覽器

[root@adailinux ~]# curl -x192.168.8.131:80 111.com -I
HTTP/1.1 401 Unauthorized
Date: Mon, 31 Jul 2017 01:42:50 GMT
Server: Apache/2.4.27 (Unix) PHP/5.6.30
WWW-Authenticate: Basic realm="111.com user auth"
Content-Type: text/html; charset=iso-8859-1

提示狀態碼爲401,表示當前訪問的內容須要進行用戶認證。bash

 

curl -x192.168.8.131:80 -uzjy:123456 111.com -I                   #加-u[用戶名]:[密碼] 進行使用用戶密碼登陸服務器

[root@adailinux ~]# curl -x192.168.8.131:80 -uzjy:123456 111.com -I
HTTP/1.1 200 OK
Date: Mon, 31 Jul 2017 02:18:21 GMT
Server: Apache/2.4.27 (Unix) PHP/5.6.30
X-Powered-By: PHP/5.6.30
Content-Type: text/html; charset=UTF-8

提示狀態碼200,即訪問成功curl

 

 

針對單個文件進行認證

1.編輯配置文件:/usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com
    #<Directory /data/wwwroot/111.com>
    <FilesMatch 123.php>
        Allowoverride AuthConfig
        AuthName "111.com user auth"
        AuthType Basic
        AuthUserFile /data/.htpasswd
        require valid-user
     </FilesMatch>
     #</Directory>
    ErrorLog "logs/111.com-error_log"
    CustomLog "logs/111.com-access_log" common
</VirtualHost>

   說明: 註釋掉< Directory >,取消對目錄設定的用戶認證,更改成< FilesMatch>,即對文件設定用戶認證。

 

 

域名跳轉

種類:301表示永久跳轉;302表示臨時跳轉。

區別:

使用效果不一樣:

                  301重定向是永久的重定向,搜索引擎在抓取新內容的同時也將舊的網址替換爲重定向以後的網址。

                  302跳轉是暫時的跳轉,搜索引擎會抓取新的內容而保留舊的網址。由於服務器返回302代碼,搜索引擎認爲新的網址只是暫時的。

 

域名跳轉配置

1.修改虛擬主機配置文件:/usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com
    <IfModule mod_rewrite.c>
    #須要mod_rewrite的支持
        RewriteEngine on
        #開啓rewrite功能
        RewriteCond %{HTTP_HOST} !^111.com$
        #Cond=condition,定義rewrite條件:全部非111.com的主機名(域名)
        RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]
        #定義rewrite規則:當知足上面條件時才執行當前規則,即跳轉到111.com。
    </IfModule>
    ErrorLog "logs/111.com-error_log"
    CustomLog "logs/111.com-access_log" common
</VirtualHost>

 

2.從新加載配置文件並檢查是否加載rewrite模塊:

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

/usr/local/apache2.4/bin/apachectl graceful

/usr/local/apache2.4/bin/apachectl -M |grep rewrite

若沒有加載,則執行如下:

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

搜rewrite,將「#」號去掉

 

3.測試:curl -x192.168.8.131:80 www.example.com -I

[root@adailinux ~]# curl -x192.168.8.131:80 www.example.com -I
HTTP/1.1 301 Moved Permanently
Date: Mon, 31 Jul 2017 07:17:37 GMT
Server: Apache/2.4.27 (Unix) PHP/5.6.30
Location: http://111.com/
Content-Type: text/html; charset=iso-8859-1

狀態碼爲301,即設定了域名永久跳轉。用瀏覽器訪問「www.example.com」會直接跳轉到「111.com」。

 

apache訪問日誌

日誌路徑:/usr/local/apache2.4/logs

自帶日誌格式:在主配置文件中有定義

    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

#h表示host來源IP,l表示login用戶,u表示user用戶密碼,t表示time時間,r表示request(行爲),s表示status狀態碼,b表示byte大小 #user-agent:用戶代理 #referer:跳轉到當前位置的上一個網址(即:提供當前IP的網站)

有combine和common兩種格式,默認使用common模式。

 

配置日誌格式:

1.更改虛擬主機配置文件:/usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com
    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} !^111.com$
        RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]
    </IfModule>
    ErrorLog "logs/111.com-error_log"
    CustomLog "logs/111.com-access_log" combined
</VirtualHost>

將日誌文件後面原有 common改成combined.

 

2.從新加載配置:

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

/usr/local/apache2.4/bin/apachectl graceful

相關文章
相關標籤/搜索