nginx配置訪問密碼

來源:本站原創 Linux 超過281 views圍觀 0條評論

 

如果我們在 nginx 下搭建了一些站點,但是由于站點內容或者流量的關系,我們并不想讓所有人都能正常訪問,那么我們可以設置訪問認證。只有讓用戶輸入正確的用戶名和密碼才能正常訪問。效果如下:

nginx 開啟訪問驗證

在 nginx 下,提供了 ngx_http_auth_basic_module 模塊實現讓用戶只有輸入正確的用戶名密碼才允許訪問web內容。默認情況下,nginx 已經安裝了該模塊。所以整體的一個過程就是先用第三方工具設置用戶名、密碼(其中密碼已經加過密),然后保存到文件中,接著在 nginx 配置文件中根據之前事先保存的文件開啟訪問驗證。

生成密碼可以使用 htpasswd,或者使用 openssl 。下面以 htpasswd 為例。

1.安裝 htpasswd 工具
這里直接 yum 進行安裝,你也可根據需要選擇編譯安裝:

1
[[email protected] ~]# yum  -y install httpd-tools
設置用戶名和密碼,并把用戶名、密碼保存到指定文件中:

[[email protected] ~]# htpasswd -c /etc/nginx/passwd jeff
New password:
Re-type new password:
Adding password for user jeff
注意:上面的 /etc/nginx/passwd 是生成密碼文件的路徑,然后 jeff 是用戶名,你可以根據需要自行設置成其它用戶名。運行命令后,會要求你連續輸入兩次密碼。輸入成功后,會提示已經為 conerschool 這個用戶添加了密碼。

我們可以看下最后生成的密碼文件的內容:

1
2
[[email protected] ~]# cat /etc/nginx/passwd
jeff:$apr1$D
其中用戶名就是 jeff ,分號后面就是密碼(已經加過密)。

2.修改 nginx 配置文件
找到 nginx 配置文件,因為我們要對整個站點開啟驗證,所以在配置文件中的第一個server修改如下:

server {
   listen 80;
   server_name  localhost;
   …….
 
   #新增下面兩行
   auth_basic "Please input password"; #這里是驗證時的提示信息
   auth_basic_user_file /etc/nginx/passwd;
 
   location /{
   …….
}
然后重啟 nginx:

[[email protected] sbin]# ./nginx -t
nginx: the configuration file /usr/local/src/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/src/nginx/conf/nginx.conf test is successful
[[email protected] sbin]# ./nginx -s reload
以上都配置無誤后,你重新訪問你的站點,如果出現需要身份驗證的彈窗就說明修改成功了。下面介紹 htpasswd 命令的一些參數。

3.htpasswd選項參數

htpasswd [-cmdpsD] passwordfile username
htpasswd -b[cmdpsD] passwordfile username password
htpasswd -n[mdps] username
htpasswd -nb[mdps] username password
htpasswd命令選項參數說明
-c 創建一個加密文件
-n 不更新加密文件,只將htpasswd命令加密后的用戶名密碼顯示在屏幕上
-m 默認htpassswd命令采用MD5算法對密碼進行加密
-d htpassswd命令采用CRYPT算法對密碼進行加密
-p htpassswd命令不對密碼進行進行加密,即明文密碼
-s htpassswd命令采用SHA算法對密碼進行加密
-b htpassswd命令行中一并輸入用戶名和密碼而不是根據提示輸入密碼
-D 刪除指定的用戶

htpasswd例子
a、如何利用htpasswd命令添加用戶?

htpasswd -bc ./密碼文件 tonyzhang pass
在當前目錄下生成一個密碼文件文件,用戶名tonyzhang ,密碼:pass,默認采用MD5加密方式

b、如何在原有密碼文件中增加下一個用戶?

htpasswd -b ./密碼文件 onlyzq pass
去掉c選項,即可在第一個用戶之后添加第二個用戶,依此類推

c、如何不更新密碼文件,只顯示加密后的用戶名和密碼?

htpasswd -nb tonyzhang pass
不更新密碼文件文件,只在屏幕上輸出用戶名和經過加密后的密碼

d、如何利用htpasswd命令刪除用戶名和密碼?

htpasswd -D 密碼文件 tonyzhang
e、如何利用 htpasswd 命令修改密碼?

htpasswd  密碼文件 tonyzhang 回車
輸入新密碼即可
參考:http://onlyzq.blog.51cto.com/1228/5575

文章出自:CCIE那點事 http://www.qdxgqk.live/ 版權所有。本站文章除注明出處外,皆為作者原創文章,可自由引用,但請注明來源。 禁止全文轉載。
本文鏈接:http://www.qdxgqk.live/?p=3863轉載請注明轉自CCIE那點事
如果喜歡:點此訂閱本站
?
?
萌宠夺宝游戏