LAMP架構(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訪問日誌)