11.18-11.21 Apache的用戶認證,域名跳轉,Apache訪問日誌
把相應參數copy進去第二個虛擬主機(為了不影響默認主機使用,所以選擇了第二個虛擬主機)
<Directory /data/wwwroot/www.123.com> //指定認證的目錄
AllowOverride AuthConfig //這個相當於打開認證的開關
AuthName "123.com user auth" //自定義認證的名字,作用不大
AuthType Basic //認證的類型,一般為Basic,其他類型阿銘沒用過
AuthUserFile /data/.htpasswd //指定密碼文件所在位置
require valid-user //指定需要認證的用戶為全部可用用戶
</Directory>
[root@Centos7-01 wwwroot]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
修改後
配置完成後,需要創建密碼文件,
# /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd aming
上條命令的解釋:
htpasswd工具,-c創建,-m MD5加密,後接密碼文件./htpasswd 再接用戶。
[root@Centos7-01 wwwroot]# ls /data/.htpasswd
/data/.htpasswd
可以cat密碼文件,是一串暗碼,是因為被MD5加密過。
[root@Centos7-01 wwwroot]# cat /data/.htpasswd
aming:$apr1$5mmrMCOX$E0QY/azyYojxZy0jTlsxt1
*註意:如果需要再次增加用戶,取消-c 因為-c是創建和生成,如果使用了-c會被覆蓋掉。
[root@Centos7-01 wwwroot]# /usr/local/apache2.4/bin/htpasswd -m /data/.htpasswd zhangsan
/usr/
設置完密碼後,
重新加載配置-t , graceful
#curl檢視信息,401表示此網頁需要驗證。
配置完成後,需要到真實機windows修改hosts文件(C:\Windows\System32\drivers\etc),把網址添加進去
登錄正確賬號密碼則可驗證成功
截圖
如果想單獨一個文件進行認證,可以這樣做。
#vim /data/wwwroot/111.com/123.php
重新加載配置-t , graceful
完成後, 登錄111.com/123.php 就需要認證,而111.com就不需要認證。
11.19 11.20 域名跳轉
需求,把123.com域名跳轉到www.123.com,配置如下:
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.123.com"
ServerName www.123.com
ServerAlias 123.com
<IfModule mod_rewrite.c> //需要mod_rewrite模塊支持
RewriteEngine on //打開rewrite功能
RewriteCond %{HTTP_HOST} !^www.123.com$ //定義rewrite的條件,主機名(域名)不是www.123.com滿足條件
RewriteRule ^/(.*)$ http://www.123.com/$1 [R=301,L] //定義rewrite規則,當滿足上面的條件時,這條規則才會執行
</IfModule>
</VirtualHost>
/usr/local/apache2/bin/apachectl -M|grep -i rewrite //若無該模塊,需要編輯配置文件httpd.conf,刪除rewrite_module (shared) 前面的#
curl -x127.0.0.1:80 -I 123.com //狀態碼為301
11.21 配置訪問日誌
訪問日誌記錄用戶的每一個請求
vim /usr/local/apache2.4/conf/httpd.conf //搜索LogFormat
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
把虛擬主機配置文件改成如下:
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.123.com"
ServerName www.123.com
ServerAlias 123.com
CustomLog "logs/123.com-access_log" combined
</VirtualHost>
重新加載配置文件 -t,graceful
curl -x127.0.0.1:80 -I 123.com
tail /usr/local/apache2.4/logs/123.com-access_log
11.18-11.21 Apache的用戶認證,域名跳轉,Apache訪問日誌