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

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

使用nginx搭建的站點,如果不想讓所有人都能正常訪問,那麼可以設定訪問認證,只有使用者輸入正確的使用者名稱和密碼才能正常訪問。效果如下:

nginx 開啟訪問驗證

在 nginx 下,提供了 ngx_http_auth_basic_module 模組實現讓使用者只有輸入正確的使用者名稱密碼才允許訪問web內容。預設情況下,nginx 已經安裝了該模組。所以整體的一個過程就是先用第三方工具( htpasswd,或者使用 openssl)設定使用者名稱、密碼(其中密碼已經加過密),然後儲存到檔案中,接著在 nginx 配置檔案中根據之前事先儲存的檔案開啟訪問驗證。

以 htpasswd為例

1、安裝 htpasswd 工具

[[email protected] ~]# yum install -y httpd-tools
設定使用者名稱和密碼,並把使用者名稱、密碼儲存到指定檔案中:    
[[email protected] ~]# mkdir -p /usr/local/src/nginx/
[[email protected] ~]# htpasswd -c /usr/local/src/nginx/passwd feiyu
New password:
Re-type new password:
Adding password for user feiyu
注意:上面的 /usr/local/src/nginx/passwd 是生成密碼檔案的路徑,然後feiyu 是使用者名稱,你可以根據需要自行設定成其它使用者名稱。執行命令後,會要求你連續輸入兩次密碼。輸入成功後,會提示已經為feiyu這個使用者添加了密碼。
檢視下生成的密碼檔案的內容:
[

[email protected] ~]# cat /usr/local/src/nginx/passwd
feiyu:$apr1$bj22mciQ$4Rq6U1EnZPyxmDj5X8v1d/
其中使用者名稱就是feiyu,分號後面就是密碼(已經加過密)。

2、修改 nginx 配置檔案

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

server {
    listen 80;
    server_name  localhost;
    .......
    #新增下面兩行
    auth_basic "Please input password"; #這裡是驗證時的提示資訊
    auth_basic_user_file /usr/local/src/nginx/passwd;
    location /{
    .......
}


然後重啟 nginx:    
[[email protected] ~]# ./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] ~]# ./nginx -s reload
以上都配置無誤後,你重新訪問你的站點,如果出現需要身份驗證的彈窗就說明修改成功了。

3、htpasswd 命令

    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 ./.passwd feiyu pass
在當前目錄下生成一個.passwd檔案,使用者名稱feiyu,密碼:pass,預設採用MD5加密方式
b、如何在原有密碼檔案中增加下一個使用者?
htpasswd -b ./.passwd feiyu1 pass
去掉c選項,即可在第一個使用者之後新增第二個使用者,依此類推
c、如何不更新密碼檔案,只顯示加密後的使用者名稱和密碼?
htpasswd -nb feiyu pass
不更新.passwd檔案,只在螢幕上輸出使用者名稱和經過加密後的密碼
d、如何利用htpasswd命令刪除使用者名稱和密碼?
htpasswd -D .passwd feiyu1
e、如何利用 htpasswd 命令修改密碼?
htpasswd -D .passwd feiyu1
htpasswd -b .passwd feiyu1 pass

相關推薦

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

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

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

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

練習:編寫循環讓用戶輸入用戶名密碼如果用戶為空或者數字則重新輸入

color while pla 密碼 b2b 如果 lap use 循環 編寫循環,讓用戶輸入用戶名和密碼,如果用戶為空或者數字,則重新輸入 while True: user = input(‘請輸入用戶:‘) .strip() # 用戶輸入 ,去掉兩邊

使用Windows 10系統進行遠程連接時遠程桌面連接輸入用戶名密碼以後提示“您的憑據不工作”無法登陸。

png 2012 r2 支持 bind 變化 sco cred soft ubun 填坑。 網上的辦法試了一遍,都沒用。 最後是群裏的老哥給我發了一鏈接,才終於知道哪裏出問題了。 使用Windows 10系統進行遠程連接時,遠程桌面連接輸入用戶名和密碼以後提示“您的憑據

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

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

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

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

Git SSH配置免去填寫使用者名稱密碼的痛苦

git 配置ssh 標籤(空格分隔): git 1、設定Git的user name和email:(如果是第一次的話) $ git config --global user.name "weiguobing" $ git config --glob

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

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

eclipse中不用輸入專案名稱就可以直接訪問專案

今天匯入一個別人很久以前用myEclipse開發的專案到eclipse,執行起來之後登入頁面能出來。輸入使用者名稱、密碼登入進入到首頁之後,點選左邊導航欄一個一個的連結報404的錯誤,仔細看下發現連結

登陸ftp需要輸入的使用者名稱密碼可以在url加入

登陸ftp或者其他類似需要輸入密碼的站點,可以在url中直接輸入使用者名稱密碼,格式為: ftp://username:[email protected] 另外一種情況是,如果是表單提交的也可以通過url填寫,如: http://url/login.php?us

Android Studio中svn上傳或更新程式碼總是提示輸入賬號密碼輸入正確也沒有提示還是繼續輸入

這個問題困擾我兩天,網上各種方法都試了還是不好使,最後想到會不會是網路問題果然。因為電腦是公司內網機麼,加的網絡卡連wifi內外網都可以用,但是weifi不穩定,所以svn一直提示輸入賬號密碼,我給直接

嵌入式ARM Linux開發板自啟動跳過輸入root使用者名稱密碼

1. 編譯autologin.c程式。autologin.c檔案內容#include <unistd.h>int main() {        execlp("login","login","-f","root",0);        return 0;}編譯#

07_編寫腳本:提示用戶輸入用戶名和密碼,腳本自動創建相應的賬戶及配置密碼。如果用戶不輸入賬戶名,則提示必須輸入賬戶名並退出腳本;如果用戶不輸入密碼,則統一使用默認的 123456 作為默認密碼

密碼 passwd 退出 默認 腳本 自動創建 stdin echo user #!/bin/bashread -p "請輸入用戶名: " user#使用-z 可以判斷一個變量是否為空,如果為空,提示用戶必須輸入賬戶名,並退出腳本,退出碼為 2#沒有輸入用戶名腳本退出後,使

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

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

Ubuntu16安裝mysql5.7未提示輸入密碼安裝後修改mysql密碼預設密碼

Ubuntu16安裝mysql5.7未提示輸入密碼,安裝後修改mysql密碼預設密碼 mysql預設密碼為空 但是使用mysq

python網絡編程通過服務名稱會話類型(tcpudp)獲取端口號簡單的異常處理

one span try num python網絡 int 代碼 sys.argv 通過 作為一個php程序員,同時有對網絡方面感興趣,php就比較蛋疼了,所以就抽了些時間看python 之前學python基礎因為工作原因,斷斷續續的看了個基礎,差不多是可以寫代碼了 最近在

nginx與tomcat 組合 實現靜態文件jsp組合訪問

log roo forward tom off 代理 max usr 文件 主要修改nginx的配置文件: 設置代理 location /{proxy_pass http://47.94.158.2:8080;proxy_redirect off;proxy_se

利用ajax進行post傳值登錄QQ密碼代碼

write pos .org web 後臺 .config lec rom ace <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"&

一行代碼繞過原密碼直接修改win系統密碼bat命令超神奇

今天 user type 文章 一閃而過 你知道 系統管理 超級 proc 其實我一直想學習bat命令,這種批處理,能用的好,省了很多軟件,也省了很多電腦空間。 以後就多發點簡單又強大實用的命令代碼文章,大家一起共勉。 今天要介紹的是,用一行簡單的命令來直接修改Windo

樹莓派 | 修改樹莓派3熱點的名稱密碼

開篇 在網上找了很久也沒找到怎麼修改熱點的名稱和密碼有關的資料,恰好自己發現了hostapd,此篇獻給像我這樣的小白。 教程 前提是使用的Yahboom_raspberrypi_8G_Router.img這個映象,一個自帶熱點的映象。 一、設定樹莓派3熱點的名稱和密