您好,欢迎访问利联科技官网!    24小时服务热线:400-161-0880    我们有最适合您的产品和最好的服务。登录  /  注册  /  旧平台入口

嘉兴BGP服务器搭建web网站的Nginx获取真实ip方法

 

    嘉兴BGP服务器的用户搭建网站的前端都有CDN或者负载均衡,这样会导致Nginx在获取客户端IP的时候看到的是CDN

的IP,而非客户端真实IP。为了解决这个问题需要使用Nginx的realip模块或者proxy_set_header模块,该模块可以从一个

指定的请求头中去获取客户端IP信息。


Nginx proxy_set_header模块的使用

    

配置示例如下:


location /{ 

    proxy_pass http://localhost:8080/web/; 

    #以下三个proxy_set_header配置项是重点 

    proxy_set_header Host $host; 

    proxy_set_header X-Real-IP $remote_addr; 

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

Nginx realip模块的使用

    

1、在编译安装nginx的时候加上--with-http_realip_module即可开启该模块。

2、配置realip模块


set_real_ip_from CDN_IP;  #设置可信任的IP地址,之后会使用real_ip_header从这些IP中获取请求头信息

real_ip_header  X-Forwarded-For;  #从X-Forwarded-For头中获取IP地址,多个IP存在时最左边的是客户端IP


3、防止IP地址伪造

由于X-Forwarded-For已经是通用请求头,恶意攻击可以伪造该请求头进行攻击,这样无法得知攻击者的真实IP。如果

Nginx前面还有CDN的话,可以和CDN商协定一个自定义请求头,将真实IP写进日中


    

以上是嘉兴BGP服务器搭建web服务器的Nginx获取真实ip的方法

您可能还会对下面的文章感兴趣: