天天看點

nginx配置使用者認證

一、檢視目前系統參數

[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

也可使用OpenSSL生産使用者名密碼:printf "ssjlog:$(openssl passwd -crypt 123456)\n" >>conf/htpasswd

[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  ]

五、nginx運作狀态監控配置

1、通過web界面檢視時Nginx需要開啟status子產品,也就是安裝Nginx時加上--with-http_stub_status_module,在nginx.conf的server塊中添加如下代碼:

location /status {  

    # Turn on nginx stats  

    stub_status on;  

    # I do not need logs for stats  

    access_log   off;  

    # Security: Only allow access from 192.168.1.100 IP #  

    #allow 192.168.1.100;  

    # Send rest of the world to /dev/null #  

    #deny all;  

}

 配置完後重新啟動Nginx後我們可以通過浏覽器通路http://localhost/status 檢視

2、解析:

Active connections    //目前 Nginx 正處理的活動連接配接數。

server accepts handled requests //總共處理了8 個連接配接 , 成功建立 8 次握手,總共處理了500個請求。

Reading //nginx 讀取到用戶端的 Header 資訊數。

Writing //nginx 傳回給用戶端的 Header 資訊數。

Waiting //開啟 keep-alive 的情況下,這個值等于 active - (reading + writing),意思就是 Nginx 已經處理完正在等候下一次請求指令的駐留連接配接

3、通過指令檢視tcp狀态

#netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

TIME_WAIT 17

ESTABLISHED 3254

LAST_ACK 236

FIN_WAIT_1 648

FIN_WAIT_2 581

CLOSING 7

CLOSE_WAIT 4916

解析:

CLOSED  //無連接配接是活動的或正在進行

LISTEN  //伺服器在等待進入呼叫

SYN_RECV  //一個連接配接請求已經到達,等待确認

SYN_SENT  //應用已經開始,打開一個連接配接

ESTABLISHED  //正常資料傳輸狀态/目前并發連接配接數

FIN_WAIT1  //應用說它已經完成

FIN_WAIT2  //另一邊已同意釋放

ITMED_WAIT  //等待所有分組死掉

CLOSING  //兩邊同時嘗試關閉

TIME_WAIT  //另一邊已初始化一個釋放

LAST_ACK  //等待所有分組死掉

4、檢視程序打開檔案數量

lsof -p <PID>

     本文轉自aaron428 51CTO部落格,原文連結:http://blog.51cto.com/aaronsa/1728264,如需轉載請自行聯系原作者