1. 程式人生 > >LAMP架構(apache用戶認證,域名重定向,apache訪問日誌)

LAMP架構(apache用戶認證,域名重定向,apache訪問日誌)

apache用戶認證 域名重定向 apache訪問日誌

一、apache用戶認證

用戶認證就是打開一個網站。會讓你輸入用戶名和密碼。對了才會讓你訪問HTTP,

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

編輯內容如下

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

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

AuthName "123.com user auth" //自定義認證的名字,作用不大

AuthType Basic //認證的類型,一般為Basic,其他類型阿銘沒用過

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

require valid-user //指定需要認證的用戶為全部可用用戶

</Directory>


/usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd lty 使用apache的內置文件生成htpasswd -c 創建 -m mk5加密

[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t 檢查語法錯誤

Syntax OK

[root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful 重新加載配置文件


[root@localhost ~]# curl -x127.0.0.1:80 111.com -I

HTTP/1.1 401 Unauthorized

Date: Mon, 20 Nov 2017 06:31:55 GMT

Server: Apache/2.4.28 (Unix) PHP/5.6.30

WWW-Authenticate: Basic realm="111.com user auth"

Content-Type: text/html; charset=iso-8859-1


[root@localhost ~]# curl -x127.0.0.1:80 111.com -I

HTTP/1.1 401 Unauthorized (401說明要做用戶驗證)

Date: Mon, 20 Nov 2017 06:32:01 GMT

Server: Apache/2.4.28 (Unix) PHP/5.6.30

WWW-Authenticate: Basic realm="111.com user auth"

Content-Type: text/html; charset=iso-8859-1

用瀏覽器訪問發現需要做用戶認證


也可以對單個文件做用戶認證

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

編輯如下:

#<Directory /data/wwwroot/111.com>

<FilesMatch 111.php>

~

~

~

</FilesMatch>

#</Directory>

[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t 檢查語法錯誤

Syntax OK

[root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful 重新加載配置文件

[root@localhost ~]# curl -x127.0.0.1:80 111.com/111.php -I

HTTP/1.1 401 Unauthorized

Date: Mon, 20 Nov 2017 06:49:16 GMT

Server: Apache/2.4.28 (Unix) PHP/5.6.30

WWW-Authenticate: Basic realm="111.com user auth"

Content-Type: text/html; charset=iso-8859-1


二、域名重定向

域名跳轉,也叫域名重定向

[root@localhost ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<IfModule mod_rewrite.c> //需要mod_rewrite模塊支持

RewriteEngine on //打開rewrite功能

RewriteCond %{HTTP_HOST} !^111.com$ //定義rewrite的條件,主機名(域名)不是111.com滿足條件

RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L] //定義rewrite規則,當滿足上面的條件時,這條規則才會執行,301表示永久跳轉,臨時 跳轉302,L表示跳轉一次

</IfModule>

查看有沒有加載模塊rewrite.so

[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -M |grep rewrite

如果沒有,修改httpd配置文件

149 #LoadModule rewrite_module modules/mod_rewrite.so 去掉#號


[root@localhost ~]# curl -x127.0.0.1:80 2111.com.cn -I

HTTP/1.1 301 Moved Permanently (狀態為301,永久跳轉)

Date: Mon, 20 Nov 2017 08:05:07 GMT

Server: Apache/2.4.28 (Unix) PHP/5.6.30

Location: http://111.com/

Content-Type: text/html; charset=iso-8859-1


三、apache訪問日誌

訪問日誌:會記錄用戶的每一個請求

cat /logs/

默認的日誌格式:

來源的ip.時間,行為,訪問域名,httpd版本,狀態碼,大小

修改日誌格式;

vim /usr/local/apache/conf/httpd.conf

搜索/LogFormat 就是日誌的格式

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

284 LogFormat "%h %l %u %t \"%r\" %>s %b" common 默認日誌格式

{User-Agent}用戶代理:通過瀏覽器或者curl訪問,最終獲得網站內容,瀏覽器就是用戶代理,

{Referer} 記錄瀏覽器上一次所訪問的網址是什麽


vim /usr/local/apache/conf/extra/httpd-vhosts.conf

CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access%Y%m%d.log 86400"

combined (把訪問日誌這一行之前的common 改為combined)


LAMP架構(apache用戶認證,域名重定向,apache訪問日誌)