Nginx模块-access认证-限制浏览器和IP地址访问geooip地理位置信息库

 

Nginx常用模块

core模块;access访问控制模块;auth_basic基本认证模块;autoindex索引模块;log日志模块;gzip压缩模块;stub_status状态模块;geoip模块;rewrite重定向模块; proxy模块;realip模块;stream模块;upstream模块; 这些模块博客都会用到

nginx中rewrite有哪几个flag标志位(last、break、redirect、permanent),说一下都什么意思?经常使用的Nginx模块,用来作什么的?在proxy模块中你配置过哪些参数?

flag标志位

  • last : 至关于Apache的[L]标记,表示完成当前的rewrite规则
  • break : 中止执行当前虚拟主机的后续rewrite指令集
  • redirect : 返回302临时重定向,地址栏会显示跳转后的地址
  • permanent : 返回301永久重定向,地址栏会显示跳转后的地址、301和302不能简单的只返回状态码,还必须有重定向的URL,这就是return指令没法返301,302的缘由了。

last 和 break 区别有点难以理解:

last通常写在server和if中,而break通常使用在location中,last不终止重写后的url匹配,即新的url会再从server走一遍匹配流程,而break终止重写后匹配,break和last都能组织继续执行后面的rewrite指令。

Nginx模块

  • rewrite模块,实现重写功能
  • access模块:来源控制
  • ssl模块:安全加密
  • ngx_http_gzip_module:网络传输压缩模块
  • ngx_http_proxy_module 模块实现代理
  • ngx_http_upstream_module模块实现定义后端服务器列表
  • ngx_cache_purge实现缓存清除功能

proxy模块

配置过:proxy_set_header,proxy_connect_timeout,proxy_send_timeout、proxybuffer。

access限制IP地址访问

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

        location = /wyt_status{
        stub_status;
        deny 192.168.2.3;
        allow 192.168.2.14;
        }

auth_basic认证

htpasswd文件存放路径—>conf目录 htpasswd命令生成htpasswd文件

		yum provides htpasswd
		yum install httpd-tools -y
		htpasswd -c htpasswd wyt #在conf目录下生成用户名密码文件

配置文件添加location

         location  /mp3 {
            root   html/wyt;
         auth_basic "wyt";
         auth_basic_user_file htpasswd;
         autoindex on;
         }

在这里插入图片描述

** 限制浏览器访问** 在HTTP协议请求报文有User-Agent记录了浏览器信息 在这里插入图片描述

在这里插入图片描述

对浏览器进行访问

~区分大小写 ~*不区分大小写

if ($http_user_agent !~* chrome)
{
return 403;
}

对IP地址进行访问*

if ($remote_addr ~* 192.168.2.14)
{
return 403;
}

火狐浏览器访问出错403

在这里插入图片描述

geoip地理信息ip

编译前打开geoip库

下载geoip地理信息ip库

http添加

geiop_city  /usr/local/scwangyutao/conf/GeoLiteCity.dat;

sever添加

 if ($geoip_city != 'changsha' ){
	return 403;
	}