詳解Nginx實(shí)戰(zhàn)之讓用戶通過用戶名密碼認(rèn)證訪問web站點(diǎn)
有時我們會有這么一種需求,就是你的網(wǎng)站并不想提供一個公共的訪問或者某些頁面不希望公開,我們希望的是某些特定的客戶端可以訪問。那么我們可以在訪問時要求進(jìn)行身份認(rèn)證,就如給你自己的家門加一把鎖,以拒絕那些不速之客。
實(shí)驗(yàn)環(huán)境:
現(xiàn)在公司開通了一個內(nèi)部使用網(wǎng)站為www1.rsyslog.org,要求所有人查看網(wǎng)頁信息之前都必須要輸入內(nèi)定的用戶名及密碼方可瀏覽網(wǎng)頁
使用nginx下虛擬主機(jī)的搭建
www1.rsyslog.org進(jìn)行測試。
www1.rsyslog.org 192.168.100.107
DNS1 192.168.100.102
一、查看當(dāng)前系統(tǒng)參數(shù)
[root@rhel6u3-2 ~]# uname –r //查看系統(tǒng)內(nèi)核版本號 2.6.32-279.el6.i686 [root@rhel6u3-2 ~]# cat /etc/redhat-release //查看系統(tǒng)版本號 Red Hat Enterprise Linux Server release 6.3 (Santiago)
二、編輯虛擬主機(jī)配置文件
[root@rhel6u3-7 ~]# vim /usr/local/nginx/conf/nginx.conf //主配置文件中http字段中添加以下語句,將虛擬主機(jī)的配置文件指向www1.rsyslog.org
include /usr/local/nginx/server/www1.rsyslog.org;
[root@rhel6u3-7 ~]# vim /usr/local/nginx/server/www1.rsyslog.org
server {
listen 80; //監(jiān)聽端口為80
server_name www1.rsyslog.org; //虛擬主機(jī)網(wǎng)址
location / {
root sites/www1; //虛擬主機(jī)網(wǎng)站根目錄
index index.html index.htm; //虛擬主機(jī)首頁
auth_basic "secret"; //虛擬主機(jī)認(rèn)證命名
auth_basic_user_file /usr/local/nginx/passwd.db; //虛擬主機(jī)用戶名密碼認(rèn)證數(shù)據(jù)庫
}
location /status {
stub_status on; //開啟網(wǎng)站監(jiān)控狀態(tài)
access_log /usr/local/nginx/logs/www1_status.log; //監(jiān)控日志
auth_basic "NginxStatus"; }
}
三、通過htpasswd命令生成用戶名及對應(yīng)密碼數(shù)據(jù)庫文件。
[root@rhel6u3-7 server]# htpasswd -c /usr/local/nginx/passwd.db xiaonuo //創(chuàng)建認(rèn)證信息,xiaonuo 為認(rèn)證用戶名 New password: ******* //輸入認(rèn)證密碼 Re-type new password: ******** //再次輸入認(rèn)證密碼 Adding password for user xiaonuo [root@rhel6u3-7 server]# [root@rhel6u3-7 ~]# chmod 400 /usr/local/nginx/passwd.db //修改網(wǎng)站認(rèn)證數(shù)據(jù)庫權(quán)限 [root@rhel6u3-7 ~]# chown nginx. /usr/local/nginx/passwd.db //修改網(wǎng)站認(rèn)證數(shù)據(jù)庫屬主和屬組 [root@rhel6u3-7 ~]# cat /usr/local/nginx/passwd.db //可以看到通過htpasswd生成的密碼為加密格式 xiaonuo:8eZAz7BqcrXmY [root@rhel6u3-7 ~]#
四、平滑重啟nginx服務(wù)
[root@rhel6u3-7 ~]# /etc/rc.d/init.d/nginx reload //平滑重啟nginx服務(wù) nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful Reloading nginx: [ OK ]
五、DNS服務(wù)器上添加www1 A記錄
www1 A 192.168.100.107
六、通過IE訪問www1.rsyslog.org進(jìn)行測試。
別忘了將網(wǎng)卡首選DNS指向192.168.100.102

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
openssl?生成nginx自簽名證書的實(shí)現(xiàn)
本文主要介紹了openssl?生成nginx自簽名證書的實(shí)現(xiàn),主要包括openssl?req命令的使用方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12
nginx反向代理配置400,404,502等狀態(tài)的自定義頁面問題
這篇文章主要介紹了nginx反向代理配置400,404,502等狀態(tài)的自定義頁面問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
如何利用map實(shí)現(xiàn)Nginx允許多個域名跨域
這篇文章主要給大家介紹了關(guān)于如何利用map實(shí)現(xiàn)Nginx允許多個域名跨域的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10

