首页 > 代码库 > Nginx限制IP访问及获取客户端realip实战

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实战