Nginx限制IP访问及获取客户端realip实战

Posted minseo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx限制IP访问及获取客户端realip实战相关的知识,希望对你有一定的参考价值。

    做网站时经常会用到remote_addrx_forwarded_for这两个头信息来获取客户端的IP,然而当有反向代理或者CDN的情况下,这两个值就不够准确了,需要调整一些配置。nginx作为web服务器

时需要根据源IP地址(remote_addr)进行某些限制,但是假如前端是负载均衡的话,Nginx获得的地址永远是负载均衡的内网地址,虽然可以通过设置x_forwarded_for获取到真实的源IP地址但

是无法针对这个地址进行一些权限设置,及Nginx获取到的remote_addr是没有多大意义的,可以通过nginx的realip模块,让它使用x_forwarded_for里的值。使用这个模块需要重新编译Nginx,

增加--with-http_realip_module参数

1,编译安装Nginx

   不详述安装过程,编译增加--with-http_realip_module

2,修改配置文件

在http标签添加两行,其中IP地址代表负载均衡器的IP地址

3,查看日志

remote_addr和http_x_forwared_for一样了

4,设置某个页面的访问权限

  

其中admincp.php页面为后台管理员页面,只有通过拨号到对应的IP地址那台主机才允许访问

否则跳403错误

 

以上是关于Nginx限制IP访问及获取客户端realip实战的主要内容,如果未能解决你的问题,请参考以下文章

获取CDN用户真实IP

nginx http_realip_module 被高级安全防护设备代理后,获取用户端真实IP,并通过真实IP负载均衡转发到后端应用

原创多层nginx反向代理,如何获取客户端的真实IP地址

nginx反向代理如何获取真实IP?

nginx获取上游真实IP(ngx_http_realip_module)

nginx获取请求真实IP