Nginx用戶認證與域名重定向

筆記內容:php

  • 12.8 Nginx用戶認證
  • 12.9 Nginx域名重定向

筆記日期:2017.10.19html


<br>nginx

12.8 Nginx用戶認證


Nginx用戶認證與域名重定向
Nginx用戶認證與域名重定向
建立虛擬主機配置文件:vim

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

文件內容以下:ide

server
{
    listen 80;
    server_name test.com;
    index index.html index.htm index.php;
    root /data/wwwroot/test.com;

location  /
    {
        auth_basic              "Auth";  //定義用戶認證的名稱
        auth_basic_user_file   /usr/local/nginx/conf/htpasswd;  //用戶名和密碼文件的路徑
     }
}

Nginx用戶認證與域名重定向

建立test.com目錄:測試

mkdir /data/wwwroot/test.comurl

建立一個索引頁文件:.net

echo "test.com" > /data/wwwroot/test.com/index.html3d

安裝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表明成功:
Nginx用戶認證與域名重定向

而後使用-u指定用戶名和密碼去訪問,狀態碼爲200表明成功:
Nginx用戶認證與域名重定向

以上咱們配置的是整個站點的用戶認證,可是若是不須要整個站點都要用戶認證,只有單獨的某個站點下的目錄須要進行用戶認證,那麼如何配置?
示例:
例如我要指定對admin目錄進行用戶認證,修改虛擬主機配置文件如如下內容便可:
Nginx用戶認證與域名重定向

如今訪問test.com就不會須要進行用戶認證了,能夠看到狀態碼爲200:
Nginx用戶認證與域名重定向

可是訪問test.com下的admin目錄就會須要進行用戶認證了,能夠看到狀態碼爲401:
Nginx用戶認證與域名重定向
這時候就須要指定用戶名和密碼才能訪問這個目錄了。

<br>
除了控制目錄外,還能夠控制目錄下的文件,例如我要控制訪問admin.php文件時須要進行用戶認證,修改虛擬主機配置文件如如下內容:
Nginx用戶認證與域名重定向
~ 表示根,表示整個站點

這時候使用curl訪問admin目錄下的admin.php文件時就須要進行用戶認證了,能夠看到狀態碼爲401:
Nginx用戶認證與域名重定向

<br>

12.9 Nginx域名重定向


Nginx用戶認證與域名重定向

修改配置文件爲如下內容:

server
{
    listen 80;
    server_name test.com test1.com test2.com;
    index index.html index.htm index.php;
    root /data/wwwroot/test.com;
    if ($host != 'test.com' ) {
        rewrite  ^/(.*)$  http://test.com/$1  permanent;
    }
}

Nginx用戶認證與域名重定向

從新加載配置文件:
Nginx用戶認證與域名重定向

使用curl訪問test2.com,狀態碼爲301,而且重定向的目標域名是test.com就表明成功了:
Nginx用戶認證與域名重定向

<br>

擴展


nginx.conf 配置詳解
http://www.ha97.com/5194.html
http://my.oschina.net/duxuefeng/blog/34880

<br>
nginx rewrite四種flag
http://www.netingcn.com/nginx-rewrite-flag.html
http://unixman.blog.51cto.com/10163040/1711943

相關文章
相關標籤/搜索