美文网首页
nginx浅谈之访问控制

nginx浅谈之访问控制

作者: 蓝洛333 | 来源:发表于2021-03-27 23:06 被阅读0次

一、基于IP的访问控制(http_access_module)

允许访问语法:allow address | CIDR | unix | all

禁止访问语法: deny address allow address | CIDR | unix | all

解释:语法后面的三个参数是代表三个可选项,每次可以选择其中的一个,CIDR表示的是某个网段,unix则是socket,all则允许全部访问。

注:以上两个语法经常一起使用,可下载配置文件的http、server和location部分。

例如:

location ~^/index.html{
   allow IP地址;
    deny all;
}

以上配置完之后,重启nginx,进行访问的话,除了IP地址允许访问外,其他的IP地址访问都会是403的页面。当然,访问控制放在的位置不同(http、server、location),影响的范围也会不同。

局限性:一些通过CDN、代理等形式访问时IP用的是非自己的主机IP。

二、基于用户的信任登录(http_auth_basic_module)

语法:auth_basic string|off;

解释:开启用户登录模块,string设置了字符串之后表示开启,同时也会在前端显示设置的string信息。此语法默认是关闭的。

语法:auth_basic_user_file file

解释:用户登录信息的配置,file指的是用户登录信息的文件的所在路径。

注:以上两个语法都可一同在server、location中配置。

例:我们首先在linux下安装nginx提供的加密包,用于密码的加密,运行如下命令安装:

rpm -qf  /usr/bin/htpassword

然后安装工具,运行如下命令:

yum install http-tools -y

然后可以运行htpasswd -c 目录文件夹路径 用户名,然后回车,输入密码。完成之后就会生成一个有用户的信息的文件,文件是以key:value的形式存储。

然后在nginx的配置文件的server或者http那里加入如下内容:

auth_basic "Auth access test!input you password";
auth_basic_user_file 目录路径
auth_basic.JPG

然后,使用浏览器访问我们的主机,会弹出一个框,只有我们填写了我们设置的用户名和密码之后,才能访问页面。

auth_basic2.JPG

局限性:①用户信息依赖文件形式。②操作管理机械,效率低下。

当然,也可以再nginx的配置文件里配置跨域访问,语法为:add_header name value。此语法可在http、server和location部分进行配置,例如在location部分里面加上如下语句:

add_header Access_Control_Allow_origin  域名;
add_header Access_Control_Allow_Methods  GET,POST,PUT;

当然,在实际的开发项目中,一般跨域访问我们比较常用的是利用jsonp或者是在服务端加上header头来进行配置。

相关文章

网友评论

      本文标题:nginx浅谈之访问控制

      本文链接:https://www.haomeiwen.com/subject/hysuhltx.html