1. 程式人生 > >nginx配置訪問密碼,讓使用者輸入使用者名稱密碼才能訪問

nginx配置訪問密碼,讓使用者輸入使用者名稱密碼才能訪問

如果我們在 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

設定使用者名稱和密碼,並把使用者名稱、密碼儲存到指定檔案中:

1 2 3 4 [[email protected] ~]# htpasswd -c /usr/local/src/nginx/passwd coderschool New password:  Re-type new password:  Adding password for user coderschool 

注意:上面的 /usr/local/src/nginx/passwd 是生成密碼檔案的路徑,然後 coderschool 是使用者名稱,你可以根據需要自行設定成其它使用者名稱。執行命令後,會要求你連續輸入兩次密碼。輸入成功後,會提示已經為 conerschool 這個使用者添加了密碼。

我們可以看下最後生成的密碼檔案的內容:

1 2 [[email protected] ~]# cat /usr/local/src/nginx/passwd  coderschool:$apr1$DhlW8hIu$BXyCQ7hiEos1DiqgwEYcZ1

其中使用者名稱就是 coderschool ,分號後面就是密碼(已經加過密)。

2.修改 nginx 配置檔案

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

1 2 3 4 5 6 7 8 9 10 11 12 server { listen 80; server_name  localhost; ....... #新增下面兩行 auth_basic "Please input password"; #這裡是驗證時的提示資訊  auth_basic_user_file /usr/local/src/nginx/passwd; location /{ ....... }

然後重啟 nginx:

1 2 3 4 [[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選項引數

1 2 3 4 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命令新增使用者?

1 htpasswd -bc ./.passwd tonyzhang pass

在當前目錄下生成一個.passwd檔案,使用者名稱tonyzhang ,密碼:pass,預設採用MD5加密方式

b、如何在原有密碼檔案中增加下一個使用者?

1 htpasswd -b ./.passwd onlyzq pass

去掉c選項,即可在第一個使用者之後新增第二個使用者,依此類推

c、如何不更新密碼檔案,只顯示加密後的使用者名稱和密碼?

1 htpasswd -nb tonyzhang pass

不更新.passwd檔案,只在螢幕上輸出使用者名稱和經過加密後的密碼

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

1 htpasswd -D .passwd tonyzhang

e、如何利用 htpasswd 命令修改密碼?

1 2 htpasswd -D .passwd tonyzhang htpasswd -b .passwd tonyzhang pass
參考:http://onlyzq.blog.51cto.com/1228/5575

相關推薦

nginx配置訪問密碼使用者輸入使用者名稱密碼才能訪問

如果我們在 nginx 下搭建了一些站點,但是由於站點內容或者流量的關係,我們並不想讓所有人都能正常訪問,那麼我們可以設定訪問認證。只有讓使用者輸入正確的使用者名稱和密碼才能正常訪問。效果如下: 在 nginx 下,提供了 ngx_http_auth_basic_modu

如何內網訪問mysql,如何phpmyadmin輸入密碼再進入

對於很多不熟悉PHP環境安裝的朋友來說,用整合環境可以更快的上手,更方便的搭建PHP的執行環境,但是,WAMP的整合環境僅僅是將底層基礎工作做好了,有些個別關鍵的配置操作並沒有整合到環境安裝中,所以給大家帶來不少麻煩,看到搜尋引擎中很多朋友都在問為什麼安裝好WAMP後,只能本地訪問?區域網內禁止訪問

關於nginx配置成功後無法訪問的問題

接著檢查了伺服器端的80埠是否可以訪問的到 ,如果訪問不到,那麼就是防火牆的問題。   做如下處理: [[email protected] ]# /sbin/iptables -I INPUT -p tcp

強大的vim配置文件編程更隨意(轉)

c-c 語言設置 檢測 nes d+ efault office eth conf 歡迎來到小碼哥的博客 博客搬家啦 blog.ma6174.com 強大的vim配置文件,讓編程更隨意 花了很長時間整理的,感覺用起來很方便,共享一下。 我的vim配置主要

配置靜態路由不同網段的pc機互聯互通

網絡原理基礎靜態路由的配置,需要我們在路由器中設置每個端口的IP,然後告訴路由器下一個地址的存在以及該怎麽走,即下一跳地址,下面以下圖為例,實現靜態路由的配置。接下來我們需要進如路由器對路由器進行配置(過程如下圖所示):配置靜態路由,讓不同網段的pc機互聯互通

關於nginx配置負載均衡nginx.conf配置檔案正確一直跳出nginx歡迎介面

小編跟大家一樣,明明配置檔案正確,但就是一直跳出nginx歡迎介面 這個是我nginx的安裝目錄,我在這個目錄下吧nginx.conf修改配置,發現沒用。     於是我看了nginx啟動命令 /usr/local/nginx/sbin/nginx 。我

阿裏雲ACM:雲原生配置管理利器雲上的Spring Cloud應用配置管理舞動起來

消息 存儲 內容 中心 product e30 yun nac 架構 在傳統架構中,如果配置信息有變更,通常是登陸服務器手動修改配置來使配置生效。在微服務架構中,應用數和節點數由於微服務化數量激增,導致發布次數增加,配置變更難度加大,通常是將應用配置抽象出來放置在外部的配置

win7系統訪問win10系統時需要輸入賬戶名密碼問題的解決方法

 現在很多使用者都喜歡安裝雙系統,安裝雙系統對新系統進行操作體驗的話會更加合適一些,這樣的話在沒有我完全掌握新系統操作時如果有深度要求的話就可以直接 切換系統進行使用,相對方便很多,但是很多使用者在使用win7系統訪問win10系統時會出現需要輸入賬戶名密碼的情況,這樣的話就非常的麻煩了,那在使 用

Nginx常用遮蔽規則網站更安全

Nginx (engine x) 是一個高效能的HTTP和反向代理服務,目前很大一部分網站均使用了Nginx作為WEB伺服器,Nginx雖然非常強大,但預設情況下並不能阻擋惡意訪問,xiaoz整理了一份常用的Nginx遮蔽規則,希望對你有所幫助。 在開始之前,

windows上 nginx 配置代理服務配置多域名以及最簡單實現跨域配置

Nginx,不用多說啦,大家都熟悉的不能再熟悉了,它是一款輕量級的高效能Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,最近在本地研究將nginx和resin配合使用,使服務效能達到最高,在配置過程中主要涉及到單域名配置代理服務,以及配

Nginx配置SSL安全證書避免啟動輸入Enter PEM pass phrase

Nginx配置SSL安全證書避免啟動輸入Enter PEM pass phrase 介紹了Nginx配置SSL的一些情況,配置好的Nginx每次啟動都要輸兩遍PEM pass phrase,很是不爽,尤其是在伺服器重啟後,Nginx壓根就無法自動啟動,必須手動啟動並輸入那麻煩的PEM pas

設定tomcat的預設專案名稱(預設應用)、埠號訪問連線(url)不需要輸入專案名稱、埠

1、修改背景: A、通常我們訪問我們的web應用格式為: http://ip:埠號/專案名稱 例如: http://127.0.0.1:8080/projectName

Nginx配置同一個域名同時支援http與https兩種方式訪問

server { listen 80; listen 443 ssl; ssl on; server_name 域名; index index.html index.htm index.php default.html default.htm default.php; ssl_certificate /usr

nginx】把自己的nginx配置貼上來做個備忘

#user nobody; #執行使用者 worker_processes 1; #啟動程序,通常設定成和CPU數量相等 #全域性錯誤日誌及錯誤記錄型別 #錯誤型別 [ debug | info | notice | warn | error | crit ]

git push 免密碼去除每次輸入密碼

問題:在使用git程式碼倉庫時,使用git clone 獲取程式碼時,如果使用的是https協議,則在每次push時需要輸入賬號密碼。 相關文件:文件一,文件二 驗證了文件一種的方法二可用,記錄一下 建立檔案儲存GIT使用者名稱和密碼, 在當前使

如何針對瀏覽器自動儲存賬號密碼text自動清空

在做需求的時候,發現自己沒有儲存密碼但是最後退出登入的時候密碼仍然都存著了。 打一個LOG發現賬號和密碼都是自動被填充的,是Google的自動填充密碼給完成的。 那麼如何解決這個問題呢? 密碼位吧i

nginx 配置反向代理負載均衡實戰解析

16px 中介 www. pre 地址 try_files 訪問 自己 服務 前言:NGINX的反向代理和負載均衡是網站架構中經常用到的一種高並發,高可用的方案,下面我們直接實戰操作,當然理論也是要的。 一、反向代理 過程:反向代理:客戶端 一>代理 &

如何重置CentOS 7的Root密碼我已成功重置密碼

分享 linux label width reboot 找到 展示 技術分享 方式 重置Centos 7 Root密碼的方式和Centos 6完全不同。讓我來展示一下到底如何操作。 1 - 在啟動grub菜單,選擇編輯選項啟動 2 - 按鍵盤e鍵,來進入編輯界面 3

git push 每次都需要輸入使用者名稱和密碼 TortoiseGit 不用每次輸入使用者名稱和密碼的方法

最近使用git每次提交程式碼到遠端和fetch 遠端程式碼的時候都需要輸入使用者名稱密碼  比較麻煩,特地弄了一下  這裡也記錄下步驟。 之所以每次都需要輸入使用者名稱密碼是因為使用的是https的方

nginx配置訪問密碼輸入使用者名稱和密碼才能訪問

使用nginx搭建的站點,如果不想讓所有人都能正常訪問,那麼可以設定訪問認證,只有使用者輸入正確的使用者名稱和密碼才能正常訪問。效果如下: nginx 開啟訪問驗證 在 nginx 下,提供了 ngx_http_auth_basic_module 模組實現讓使用者只有