Apache用戶認證、Apache域名跳轉、Apache訪問日誌

Apache用戶認證

通常狀況咱們訪問網站的時候並不須要用戶認證,可是當網站上某些網頁只想提供給指定的用戶訪問時,能夠經過用戶認證來實現。 下面這個示例是在虛擬主機配置文件中作的,#用戶認證下面的是配置的內容php

  • 編輯配置文件 `vim /usr/local/apache/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "/tmp/ccc.com"
    ServerName ccc.com
    ServerAlias www.ccc.com
    #用戶認證
    <Directory /tmp/ccc.com>              指定要認證的目錄
        AllowOverride AuthConfig          至關於打開認證的開關
        AuthName "ccc.com user auth"      自定義認證名,意義不大
        AuthType Basic                    通常設定爲basic就行
        AuthUserfile /data/.htpasswd      指定密碼文件所在位置
        require valid-user                指定須要認證的用戶爲所有可用用戶
       </Directory>
    ErrorLog "ccc.com_log"
    CustomLog "ccc.com_log" common
</VirtualHost>
  • 檢測配置文件是否有語法錯誤 /usr/local/apache/bin/apachectl -t
  • /從新加載配置文件 /usr/local/apache/bin/apachectl graceful
  • 建立認證用戶並設置密碼 /usr/local/apache/bin/htpasswd -c -m /data/.htpasswd hello 其中-c是建立密碼文件,-m是指定加密方式,hello是用戶名。再次添加用戶就不用-c選項了。
  • 查看用戶和密碼是否建立成功 cat /data/.htpasswd
  • 瀏覽器測試

htppasswd命令

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

參數:算法

  • c:=create,建立一個加密文件apache

  • n:不更新加密文件,只將更新後的用戶名密碼顯示在屏幕上vim

  • m:使用MD5算法對密碼進行加密(默認)瀏覽器

  • d:使用CRYPT算法對密碼進行加密服務器

  • p:不對密碼進行加密,即明文密碼curl

  • s:使用SHA算法對密碼進行加密ide

  • b:在命令行一併輸入用戶名和密碼,而不是根據提示輸入密碼工具

  • D:刪除指定用戶

對網站中指定文件設置用戶認證

編輯httpd配置文件/usr/local/apache2.4/conf/httpd.conf

  • 用戶認證還能夠對單個文件進行認證 好比一個網站下的某一個網頁須要認證,其它不用認證,則須要另外一種配置方法
<VirtualHost *:80>
    DocumentRoot "/tmp/abc.com"
    ServerName abc.com
    <FilesMatch kkk.php>                須要認證的文件,該文件須要在 DocumentRoot指定的目錄下
        AllowOverride AuthConfig
        AuthName "abc.com user auth"
        AuthType Basic
        AuthUserfile /data/.htpasswd
        require valid-user
    </FilesMatch>
    ErrorLog "abc.com_log"
    CustomLog "abc.com_log" common
</VirtualHost>

域名跳轉

  • 302跳轉是暫時的跳轉,搜索引擎會抓取新的內容而保留舊的網址。由於服務器返回302代碼,搜索引擎認爲新的網址只是暫時的。
  • 301重定向是永久的重定向,搜索引擎在抓取新內容的同時也將舊的網址替換爲重定向以後的網址。
  • SEO(Search Engine Optimization)搜索引擎優化,在瞭解搜索引擎天然排名機制的基礎上,對網站進行內部及外部的調整優化,改進網站在搜索引擎中的關鍵詞天然排名,得到更多流量,從而達成網站銷售及品牌建設的預期目標。

示例 把abc.com域名跳轉到www.abc.com ,配置

<VirtualHost *:80>
    DocumentRoot "/tmp/abc.com"
    ServerName www.abc.com
    ServerAlias abc.com
# 域名跳轉
    <IfModule mod_rewrite.c>
# 須要mod_rewrite模塊的支持
        RewriteEngine on
#打開rewrite功能
        RewriteCond %{HTTP_HOST} !^www.abc.com$
#定義rewrite的條件,意思是域名不是www.abc.com的知足條件
         RewriteRule ^/(.*)$ http://www.abc.com/$1 [R=301,L]
        #RewriteRule^/.(.*)$http://www.abc.com/$1 [R=301,L]
#定義rewrite規則,當知足上面條件時,這條規則才生效        
    </IfModule>
    ErrorLog "abc.com_log"
    CustomLog "abc.com_log" common
  • 配置完後須要加載mod_rewrite模塊 vim httpd.conf ,將rewrite_modules (shared)前面的#刪除
  • 從新加載配置文件 .....graceful
  • 使用curl -x127.0.0.1 kji.com 狀態碼顯示爲301
[root@localhost ~]# curl -x127.0.0.1:80 -l 456.com
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://www.abc.com/">here</a>.</p>
</body></html>

Apache訪問日誌

每一次訪問請求都會記錄在日誌中 Apache的訪問日誌的路徑在Apache的安裝路徑下面/usr/local/apache/logs/下

  • access_log 訪問日誌,access_log爲訪問日誌,記錄全部對apache服務器進行請求的訪問,它的位置和內容由CustomLog指令控制,LogFormat指令能夠用來簡化該日誌的內容和格式

  • error_log 錯誤日誌 error_log爲錯誤日誌,記錄下任何錯誤的處理請求,它的位置和內容由ErrorLog指令控制,一般服務器出現什麼錯誤,首先對它進行查閱,是一個最重要的日誌文件。

  • 系統自帶兩種日誌格式:combine和common,默認使用common模式。 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行爲(curl時,加I爲head,不加Iget)

  • s表示status狀態碼,b表示byte大小

  • user-agent:用戶代理(使用什麼方式訪問,瀏覽器或者curl命令或者其它)

  • referer:跳轉到當前位置的上一個網址(即:提供當前IP的網站)

相關文章
相關標籤/搜索