天天看點

Nginx使用者認證與域名重定向

Nginx使用者認證與域名重定向
Nginx使用者認證與域名重定向

建立虛拟主機配置檔案:

vim /usr/local/nginx/conf/vhost/test.com.conf

檔案内容如下:

Nginx使用者認證與域名重定向

建立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 檔案可以看到如下内容:

Nginx使用者認證與域名重定向

如果再次添加使用者的話就不需要加上-c選項了,加上-c選項會覆寫原來的htpasswd 檔案。

生成完使用者密碼檔案之後,就重新加載配置檔案:

/usr/local/nginx/sbin/nginx -t /usr/local/nginx/sbin/nginx -s reload

使用curl指令測試一下是否配置成功,狀态碼為401代表成功:

然後使用-u指定使用者名和密碼去通路,狀态碼為200代表成功:

Nginx使用者認證與域名重定向

以上我們配置的是整個站點的使用者認證,但是如果不需要整個站點都要使用者認證,隻有單獨的某個站點下的目錄需要進行使用者認證,那麼如何配置?

示例:

例如我要指定對admin目錄進行使用者認證,修改虛拟主機配置檔案如以下内容即可:

Nginx使用者認證與域名重定向

現在通路test.com就不會需要進行使用者認證了,可以看到狀态碼為200:

Nginx使用者認證與域名重定向

但是通路test.com下的admin目錄就會需要進行使用者認證了,可以看到狀态碼為401:

Nginx使用者認證與域名重定向

這時候就需要指定使用者名和密碼才能通路這個目錄了。

<br>

除了控制目錄外,還可以控制目錄下的檔案,例如我要控制通路admin.php檔案時需要進行使用者認證,修改虛拟主機配置檔案如以下内容:

Nginx使用者認證與域名重定向

~ 表示根,表示整個站點

這時候使用curl通路admin目錄下的admin.php檔案時就需要進行使用者認證了,可以看到狀态碼為401:

Nginx使用者認證與域名重定向
Nginx使用者認證與域名重定向

修改配置檔案為以下内容:

Nginx使用者認證與域名重定向

重新加載配置檔案:

Nginx使用者認證與域名重定向

使用curl通路test2.com,狀态碼為301,并且重定向的目标域名是test.com就代表成功了:

Nginx使用者認證與域名重定向

本文轉自 ZeroOne01 51CTO部落格,原文連結:http://blog.51cto.com/zero01/2046823,如需轉載請自行聯系原作者