1. 程式人生 > >84.LAMP的apache用戶認證,域名跳轉,日誌文件

84.LAMP的apache用戶認證,域名跳轉,日誌文件

用戶認證 域名跳轉 日誌

apache用戶認證

PS:其實沒有....用處的。。。

命令描述

htpasswd命令是Apache的Web服務器內置工具,用於創建和更新儲存用戶名、域和用戶基本認證的密碼文件。

命令語法

htpasswd [option] [參數]

命令選項

-c:=create,創建一個加密文件
-n:不更新加密文件,只將更新後的用戶名密碼顯示在屏幕上
-m:使用MD5算法對密碼進行加密(默認)
-d:使用CRYPT算法對密碼進行加密
-p:不對密碼進行加密,即明文密碼
-s:使用SHA算法對密碼進行加密
-b:在命令行一並輸入用戶名和密碼,而不是根據提示輸入密碼
-D:刪除指定用戶

步驟如下

1,編輯虛擬主機配置文件

[root@localhost ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/www/sdw.com"
ServerName sdw.com
ServerAlias www.example.com
<Directory /data/www/sdw.com> //指定認證的目錄
AllowOverride AuthConfig //這個相當於打開認證的開關
AuthName "sdw.com user auth" //自定義認證的名字,作用不大

AuthType Basic //認證的類型,一般為Basic
AuthUserFile /data/.htpasswd //指定密碼文件所在位置
require valid-user //指定需要認證的用戶為全部可用用戶
</Directory>
ErrorLog "logs/111.com-error_logo"
CustomLog "logs/111.com-access_log" common
</VirtualHost>

PS:在配置的時候最好把說明去除,以防報錯

2,創建“httpd-vhosts.conf”中指定的密碼文件

[root@dl-001 wwwroot]# /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd dl
New password:
Re-type new password:
Adding password for user dl
[root@dl-001 wwwroot]# cat /data/.htpasswd
dl:$apr1$QaOr7opI$AfAGBv1/utJws62.S/sbl.

PS:在“/data/.htpasswd”為用戶dl創建一個使用MD5算法加密的密碼文件。

3,重新加載

[root@dl-001 wwwroot]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@dl-001 wwwroot]# /usr/local/apache2.4/bin/apachectl graceful


4,測試

使用curl進行測試
[root@dl-001 ~]# curl -x192.168.0.168:80 sdw.com
HTTP/1.1 401 Authorization Required //說明:因為生成了密碼,所以在不指定用戶名和密碼的情況下會報401錯誤
Date: Wed, 20 Dec 2017 14:48:52 GMT
Server: Apache/2.2.34 (Unix) DAV/2 PHP/5.6.30
WWW-Authenticate: Basic realm="sdw.com user auth"
Content-Type: text/html; charset=iso-8859-1


域名跳轉

描述

域名跳轉類似於將網頁重新指向另一個網站,但區別是域名跳轉會將域名本身重新指向網站,而不使用HTML或腳本來進行重新指向。當域名被設置為跳轉至另一網站,域名的地址將不會保留在瀏覽器的URL欄中,該欄顯示的會是新頁面的URL。如果您希望保留該欄中的URL,則需要使用隱形跳轉。
把www.sdw.com 跳轉到 sdw.com上

1.修改配置文件

<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/data/www/sdw.com"
ServerName sdw.com
ServerAlias www.sdw.com
<IfModule mod_rewrite.c>
#//需要mod_rewrite模塊支持
RewriteEngine on

//打開rewrite功能

    RewriteCond %{HTTP_HOST} !^sdw.com$

#//定義rewrite的條件,主機名(域名)不是www.123.com滿足條件
RewriteRule ^/(.*)$ http://sdw.com/$1 [R=301,L]
#//定義rewrite規則,當滿足上面的條件時,這條規則才會執行
</IfModule>
<Directory /data/www/sdw.com>
AllowOverride AuthConfig
AuthName "123.com user auth"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</Directory>
ErrorLog "logs/sdw.com-error_log"
CustomLog "logs/sdw.com-access_log" common
</VirtualHost>

2.修改配置

[root@localhost ~]# vim /usr/local/apache2/conf/httpd.conf

LoadModule rewrite_module modules/mod_rewrite.so //去掉#,以啟用這個模塊

3.測試結果

[root@localhost ~]# curl -x 192.168.0.168:80 www.sdw.com -I
HTTP/1.1 301 Moved Permanently
Date: Sat, 03 Mar 2018 15:11:58 GMT
Server: Apache/2.4.29 (Unix) PHP/5.6.30
Location: http://sdw.com/
Content-Type: text/html; charset=iso-8859-1


apache日誌文件

通過優化 可以更加方便進行查詢日誌

1、Apache訪問日誌所在位置:

[root@localhost ~]# ls /usr/local/apache2/logs/
123test-access_log  abstest-error_log                   dummy-host2.example.com-error_log  error_log
123test-error_log   access_log                          dummy-host.example.com-access_log  httpd.pid
abctest-access_log  dummy-host2.example.com-access_log  dummy-host.example.com-error_log
[root@localhost ~]#cat  /usr/local/apache2/logs/123test-access_log     //common格式日誌
192.168.204.128 - - [02/Mar/2018:19:06:28 +0800] "HEAD HTTP://linuxtestbak.com/ HTTP/1.1" 301 -
192.168.204.128 - - [02/Mar/2018:19:07:51 +0800] "GET HTTP://linuxtest.com/ HTTP/1.1" 200 28
192.168.204.128 - - [02/Mar/2018:19:09:05 +0800] "HEAD HTTP://www.linuxtestbak.com/ HTTP/1.1" 301 -
192.168.204.1 - - [02/Mar/2018:19:10:55 +0800] "GET / HTTP/1.1" 200 28
192.168.204.1 - - [02/Mar/2018:19:11:08 +0800] "GET / HTTP/1.1" 200 28

2、查看日誌格式

[root@localhost ~]# vim /usr/local/apache2/conf/httpd.conf      //搜索LogFormat

<IfModule log_config_module>
    #
    # The following directives define some format nicknames for use with
    # a CustomLog directive (see below).
    #
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
說明:combined和common兩種格式,默認使用common格式。

## 3、更改日誌的格式為combined
[root@localhost ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

    ErrorLog "logs/123test-error_log"
    CustomLog "logs/123test-access_log" combined

[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
## 4,做一些訪問操作之後,再查看日誌。
[root@localhost ~]#  /usr/local/apache2.4/bin/apachectl graceful

[root@localhost ~]# cat  /usr/local/apache2.4/logs/123test-access_log 
192.168.204.128 - - [02/Mar/2018:19:06:28 +0800] "HEAD HTTP://linuxtestbak.com/ HTTP/1.1" 301 -
192.168.204.128 - - [02/Mar/2018:19:07:51 +0800] "GET HTTP://linuxtest.com/ HTTP/1.1" 200 28
192.168.204.128 - - [02/Mar/2018:19:09:05 +0800] "HEAD HTTP://www.linuxtestbak.com/ HTTP/1.1" 301 -
192.168.204.1 - - [02/Mar/2018:19:10:55 +0800] "GET / HTTP/1.1" 200 28
192.168.204.1 - - [02/Mar/2018:19:11:08 +0800] "GET / HTTP/1.1" 200 28
192.168.204.1 - - [02/Mar/2018:19:20:16 +0800] "GET / HTTP/1.1" 200 28 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36"
192.168.204.1 - - [02/Mar/2018:19:20:19 +0800] "GET / HTTP/1.1" 200 28 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36"
192.168.204.1 - - [02/Mar/2018:19:20:27 +0800] "GET / HTTP/1.1" 200 28 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36"
192.168.204.128 - - [02/Mar/2018:19:20:39 +0800] "HEAD HTTP://www.linuxtestbak.com/ HTTP/1.1" 301 - "-" "curl/7.29.0"
192.168.204.128 - - [02/Mar/2018:19:20:45 +0800] "HEAD HTTP://www.linuxtestbak.com/ HTTP/1.1" 301 - "-" "curl/7.29.0"
192.168.204.128 - - [02/Mar/2018:19:20:54 +0800] "GET HTTP://linuxtest.com/ HTTP/1.1" 200 28 "-" "curl/7.29.0"
192.168.204.128 - - [02/Mar/2018:19:20:57 +0800] "GET HTTP://linuxtest.com/ HTTP/1.1" 200 28 "-" "curl/7.29.0"
192.168.204.128 - - [02/Mar/2018:19:20:58 +0800] "GET HTTP://linuxtest.com/ HTTP/1.1" 200 28 "-" "curl/7.29.0"

84.LAMP的apache用戶認證,域名跳轉,日誌文件