Nginx限制IP访问及获取客户端realip实战
Posted minseo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx限制IP访问及获取客户端realip实战相关的知识,希望对你有一定的参考价值。
做网站时经常会用到remote_addr
和x_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实战的主要内容,如果未能解决你的问题,请参考以下文章
nginx http_realip_module 被高级安全防护设备代理后,获取用户端真实IP,并通过真实IP负载均衡转发到后端应用