为Nginx添加访问限制


nginx-http-auth-request-module


为Nginx访问限制,主要涉及到这几个模块:

ngx_http_access_module,

ngx_http_auth_basic_module

ngx_http_auth_request_module




0x01.ngx_http_access_module

access模块很简单,只要直接像apache一样添加访问限制就好了。

location / {
    deny  192.168.1.1;
    allow 192.168.1.0/24;
    allow 10.1.1.0/16;
    allow 2001:0db8::/32;
    deny  all;
}

0x02.ngx_http_auth_basic_module & ngx_http_auth_request_module

ngx_http_auth_request_module不是内置模块,你需要下载模块,并重新编译安装nginx.

先下载模块:

git clone git://github.com/perusio/nginx-auth-request-module.git

编译nginx

./configure –add-module=/path/to/ngx_http_auth_request_module

make && make install

ngx_http_auth_basic_module需要提前添加密码。

htpasswd -c /usr/local/nginx/auth_passwd xxx

这个时候,你就为 xxx 这个用户名设置了密码,访问时候,就要求输入用户名密码。

然后改下配置文件。

location / {
    auth_basic           "Don`t fuck me!";
    auth_basic_user_file /usr/local/nginx/auth_passwd;
    auth_request /auth;
       auth_request_set $my_error_page $upstream_http_x_error_page;
}

记得重启nginx。

service nginx restart

这个时候,如果用户名,密码错误,会返回:

401




本文出自 夏日小草,转载请注明出处: http://homeway.me/2014/11/11/nginx-http-auth-request-module

by 小草

2014-11-11 23:46:38

Fork me on GitHub