
建立虛拟主機配置檔案:
vim /usr/local/nginx/conf/vhost/test.com.conf
檔案内容如下:
建立test.com目錄:
mkdir /data/wwwroot/test.com
建立一個索引頁檔案:
echo "test.com" > /data/wwwroot/test.com/index.html
安裝httpd:
yum install -y httpd
然後使用httpd裡的htpasswd 指令去生成一個使用者密碼檔案:
htpasswd -c /usr/local/nginx/conf/htpasswd user1
生成完成後cat一下htpasswd 檔案可以看到如下内容:
如果再次添加使用者的話就不需要加上-c選項了,加上-c選項會覆寫原來的htpasswd 檔案。
生成完使用者密碼檔案之後,就重新加載配置檔案:
/usr/local/nginx/sbin/nginx -t /usr/local/nginx/sbin/nginx -s reload
使用curl指令測試一下是否配置成功,狀态碼為401代表成功:
然後使用-u指定使用者名和密碼去通路,狀态碼為200代表成功:
以上我們配置的是整個站點的使用者認證,但是如果不需要整個站點都要使用者認證,隻有單獨的某個站點下的目錄需要進行使用者認證,那麼如何配置?
示例:
例如我要指定對admin目錄進行使用者認證,修改虛拟主機配置檔案如以下内容即可:
現在通路test.com就不會需要進行使用者認證了,可以看到狀态碼為200:
但是通路test.com下的admin目錄就會需要進行使用者認證了,可以看到狀态碼為401:
這時候就需要指定使用者名和密碼才能通路這個目錄了。
<br>
除了控制目錄外,還可以控制目錄下的檔案,例如我要控制通路admin.php檔案時需要進行使用者認證,修改虛拟主機配置檔案如以下内容:
~ 表示根,表示整個站點
這時候使用curl通路admin目錄下的admin.php檔案時就需要進行使用者認證了,可以看到狀态碼為401:
修改配置檔案為以下内容:
重新加載配置檔案:
使用curl通路test2.com,狀态碼為301,并且重定向的目标域名是test.com就代表成功了:
本文轉自 ZeroOne01 51CTO部落格,原文連結:http://blog.51cto.com/zero01/2046823,如需轉載請自行聯系原作者