Nginx 配置 Basic 認證


/*
 * 環境:LNMP(CentOS 6.6 + Nginx 1.8.0)
 */

在 Nginx 下配置 Basic 認證需要依靠 Nginx 的 http_auth_basic_module 模塊(官方文檔:http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html

 

配置過程:

① 生成認證文件,形式為 用戶名:密碼

密碼采用 crypt 方式加密(用戶名:user ,密碼:123456)

文件保存在 /usr/local/nginx/conf 下

生成文件: 

[root@localhost conf]# printf "user:$(openssl passwd -crypt 123456)\n" >>htpasswd

 

查看該文件:

 


② 配置 /usr/local/nginx/conf/nginx.conf 文件,在 location 段中加上 auth_basic 和 auth_basic_user_file :

                location \ {
                        auth_basic "login";
                        auth_basic_user_file /usr/local/nginx/conf/htpasswd;
                }

其中 auth_basic 為彈出框的提示語,可自定義

auth_basic_user_file 為認證文件的路徑,可以寫絕對路徑,也可以只寫文件名(默認的路徑是 /usr/local/nginx/conf )

 

平滑重啟 Nginx。 

 

此時訪問 192.168.254.100,提示認證:

 

如果輸入錯誤,彈出框會繼續彈出;

 

如果取消輸入,則響應 401 Unauthorized:

 

輸入正確,則響應 200 OK。 

 

=====================

附:PHP 模擬 Basic 認證

<?php

$user = 'dee';
$pwd = '12345';

if($_SERVER['PHP_AUTH_USER'] != $user ||
    $_SERVER['PHP_AUTH_PW'] != $pwd
) {
    header('Content-type:text/html;charset=utf-8');
    header('WWW-Authenticate: Basic realm="加密傳輸"');
    header('HTTP/1.1 401 Unauthorized');
    echo '請提供正確的用戶名和密碼';
    exit;
}

echo 'Hello';

 

 

參考: 

http://blog.chenlb.com/2010/03/nginx-http-auth-basic.html

http://www.jb51.net/article/32211.htm

http://os.51cto.com/art/201308/407232.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM