Nginx 配置文件/文件夾訪問權限

1. 生成密碼htpasswd文件(二選一)

什麼是 htpasswd ?

htpasswd 是開源 http 服務器 apache httpd 的一個命令工具,用於生成 http 基本認證的密碼文件。html

加密方式有什麼區別?

MD5:使用MD5加密密碼。在Windows, Netware 和TPF上,這是默認的加密方式。nginx

crypt:使用crypt()加密密碼。在除了Windows, Netware和TPF的平臺上,這是默認的。 雖然它在全部平臺上能夠爲htpasswd所支持, 可是在Windows, Netware和TPF上不能爲httpd服務器所支持。數據庫

SHA:使用SHA加密密碼。 它是爲了方便轉入或移植到使用LDAP Directory Interchange Format (ldif)的Netscape而設計的。apache

plain:不加密,使用純文本的密碼。雖然在全部平臺上 htpasswd 均可以創建這樣的密碼, 可是httpd後臺只在Windows, Netware和TPF上支持純文本的密碼。vim

爲何要作成在線的?

若是咱們不使用apache服務器,例如使用nginx等,可能手頭沒有這個命令行工具,就沒法生成密碼文件,有了在線版的能夠方便服務器管理員使用。服務器

(1) 在線htpasswd生成器app

http://tool.oschina.net/htpasswdtcp

(2) 離線(本地)生成htpasswd工具

a. 經過htpasswd命令生成用戶名及對應密碼數據庫文件。oop

//建立認證信息,wyl 爲認證用戶名 
[root@bgs-5p173-wangwenting ~]# htpasswd -c /usr/local/nginx/passwd.db wyl  
//輸入認證密碼 
New password: *******  
//再次輸入認證密碼 
Re-type new password: ********  
Adding password for user wyl
//修改網站認證數據庫權限 
[root@bgs-5p173-wangwenting ~]# chmod 400 /usr/local/nginx/passwd.db  
//修改網站認證數據庫屬主和屬組 
[root@bgs-5p173-wangwenting ~]# chown root:root /usr/local/nginx/passwd.db  
//能夠看到經過htpasswd生成的密碼爲加密格式 
[root@bgs-5p173-wangwenting ~]# cat /usr/local/nginx/passwd.db  
wyl:r5IXRXWSmlBk6

 

2. 配置Nginx主機文件

//主配置文件中http字段中添加如下語句
[root@bgs-5p173-wangwenting ~]# vim /usr/local/nginx/conf/nginx.conf 

user  root;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;


    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;


    server {
        listen       80;
        server_name  localhost;


        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }


server {
     listen       12171;
     server_name  localhost;

     client_max_body_size    151m;

   location / {
         auth_basic "s1";  #虛擬主機認證命名 
         auth_basic_user_file /usr/local/nginx/passwd.db; #虛擬主機用戶名密碼認證數據庫     
         #proxy_pass http://10.0.0.10:9011;  #nginx 訪問
	 root   html;
            index  index.html index.htm; 
}
}


server {
     listen       12172;
     server_name  localhost;

     client_max_body_size    151m;

   location / {
         auth_basic "s1";  #虛擬主機認證命名 
         auth_basic_user_file /usr/local/nginx/passwd.db; #虛擬主機用戶名密碼認證數據庫     
         proxy_pass http://10.0.0.10:8088;  #hadoop 訪問
 }
}

 

3. 修改htpasswd文件權限

sudo chown root:www-data htpasswd 
sudo chmod 640 htpasswd

受權失敗會致使 服務器500的錯誤

 

4. 重啓Nginx服務器

// 測試重啓配置文件是否正確
# nginx -t
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

// 平滑重啓
# nginx -s reload

 

5. 訪問添加權限限制Web,如圖:

相關文章
相關標籤/搜索