詳解Nginx實戰之讓用戶通過用戶名密碼認證訪問web站點

發布時間:2017-03-09 18:10 來源:互聯網 當前欄目:web技術類

有時我們會有這么一種需求,就是你的網站并不想提供一個公共的訪問或者某些頁面不希望公開,我們希望的是某些特定的客戶端可以訪問。那么我們可以在訪問時要求進行身份認證,就如給你自己的家門加一把鎖,以拒絕那些不速之客。

實驗環境:

現在公司開通了一個內部使用網站為www1.rsyslog.org,要求所有人查看網頁信息之前都必須要輸入內定的用戶名及密碼方可瀏覽網頁

使用nginx下虛擬主機的搭建

www1.rsyslog.org進行測試。

www1.rsyslog.org 192.168.100.107

DNS1 192.168.100.102

一、查看當前系統參數

[root@rhel6u3-2 ~]# uname –r //查看系統內核版本號 2.6.32-279.el6.i686 [root@rhel6u3-2 ~]# cat /etc/redhat-release //查看系統版本號 Red Hat Enterprise Linux Server release 6.3 (Santiago) 

二、編輯虛擬主機配置文件

[root@rhel6u3-7 ~]# vim /usr/local/nginx/conf/nginx.conf //主配置文件中http字段中添加以下語句,將虛擬主機的配置文件指向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; //監聽端口為80    server_name www1.rsyslog.org; //虛擬主機網址    location / {       root  sites/www1; //虛擬主機網站根目錄       index index.html index.htm; //虛擬主機首頁       auth_basic "secret"; //虛擬主機認證命名       auth_basic_user_file /usr/local/nginx/passwd.db; //虛擬主機用戶名密碼認證數據庫     }     location /status {         stub_status on; //開啟網站監控狀態         access_log /usr/local/nginx/logs/www1_status.log; //監控日志         auth_basic "NginxStatus"; }   } 

三、通過htpasswd命令生成用戶名及對應密碼數據庫文件。

[root@rhel6u3-7 server]# htpasswd -c /usr/local/nginx/passwd.db xiaonuo //創建認證信息,xiaonuo 為認證用戶名 New password: ******* //輸入認證密碼 Re-type new password: ******** //再次輸入認證密碼 Adding password for user xiaonuo [root@rhel6u3-7 server]# [root@rhel6u3-7 ~]# chmod 400 /usr/local/nginx/passwd.db //修改網站認證數據庫權限 [root@rhel6u3-7 ~]# chown nginx. /usr/local/nginx/passwd.db //修改網站認證數據庫屬主和屬組 [root@rhel6u3-7 ~]# cat /usr/local/nginx/passwd.db //可以看到通過htpasswd生成的密碼為加密格式 xiaonuo:8eZAz7BqcrXmY [root@rhel6u3-7 ~]# 

四、平滑重啟nginx服務

[root@rhel6u3-7 ~]# /etc/rc.d/init.d/nginx reload //平滑重啟nginx服務 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服務器上添加www1 A記錄

www1    A   192.168.100.107

六、通過IE訪問www1.rsyslog.org進行測試。

別忘了將網卡首選DNS指向192.168.100.102

  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、
  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、