Nginx访问控制

Nginx访问控制教程

Nginx 中,http_access_module 模块是基于 IP 的访问控制,http_access_module 模块是 Nginx 本身内置的模块,不需要安装的时候配置。也就是允许哪些 IP 访问,不允许哪些 IP 访问。

http_access_module

语法

allow address|CIDR|unix:|all; deny address|CIDR|unix:|all;

使用环境

http,server,location,limit_except

说明

通过 allow 可以配置允许访问的 ip 地址,同时,通过 deny 可以配置不允许访问的 ip 地址。

Nginx访问控制

限制IP不能访问

我们首先使用 vim 打开 nginx 的默认配置路径,具体命令如下:

vim /etc/nginx/conf.d/default.conf

如下图所示:

28_nginx访问控制.png

我们执行如上命令,打开配置文件,接着,我们在 server 下面增加一个 location 配置,具体配置如下:

location ~ ^/haicoder.html { root /opt/app/code; deny 192.168.80.1; # 这个ip地址不能访问 allow all; # 除了上面的ip,其他的所有ip都能访问 index index.html index.htm; }

配置完毕后,如下图所示:

29_nginx访问控制.png

现在,我们重新加载配置文件,具体命令如下:

nginx -s reload

现在,我们使用浏览器访问 nginx,浏览器输出如下:

30_nginx访问控制.png

我们看到,我们的配置已经生效了,阻止了我们本地对 nginx 的访问,现在,我们取消限制,修改配置如下:

location ~ ^/haicoder.html { root /opt/app/code; #deny 192.168.80.1; allow all; index index.html index.htm; }

我们注释了 deny 本机的访问,修改完毕后,我们重新加载配置,现在,我们再次访问,此时浏览器输出如下:

31_nginx访问控制.png

我们看到,现在,我们本机可以访问了。

只能指定IP访问

我们首先使用 vim 打开 nginx 的默认配置路径,接着,我们在 server 下面增加一个 location 配置,具体配置如下:

location ~ ^/haicoder.html { root /opt/app/code; allow 192.168.80.1; # 这个ip地址能访问 deny all; # 除了上面的ip,其他的所有ip都不能访问 index index.html index.htm; }

配置完毕后,现在,我们重新加载配置文件,具体命令如下:

nginx -s reload

现在,我们使用浏览器访问 nginx,浏览器输出如下:

32_nginx访问控制.png

我们看到,我们的配置已经生效了,我们本地可以正常对 nginx 访问。

Nginx访问控制总结

在 Nginx 中,http_access_module 模块是基于 IP 的访问控制,http_access_module 模块是 Nginx 本身内置的模块,不需要安装的时候配置。也就是允许哪些 IP 访问,不允许哪些 IP 访问。