searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

nginx黑白名单、IP透传配置

2023-06-12 09:26:34
189
0

在nginx日常使用中,IP透传可以帮助我们在使用nginx反向代理时正确获取客户端IP地址,而白名单限制则可以帮助我们限制只允许特定IP地址或IP地址段的客户端访问我们的网站,以下是如何在nginx中如何配置IP透传以及配置黑白名单。

1、IP透传

当NGINX作为WEB服务器的反向代理时,我们通常需要将客户端的真实IP透传到后端服务器,这样才能正确记录访问日志和进行客户端IP统计。

首先需要在NGINX的配置文件中添加如下配置:

set_real_ip_from  .../; #允许任何IP
real_ip_header    X-Real-IP;  #表示从X-Real-IP的HTTP头中获取客户端IP

其中set_real_ip_from用于配置可以信任的IP地址,如果没有指定,则默认从所有IP地址接收真实IP。real_ip_header则是指定从HTTP头中获取真实IP的字段,默认为X-Forwarded-For。

然后在server段中加入以下配置:

proxy_set_header X-Real-IP $remote_addr; # 设置发送到后端服务器的HTTP头
proxy_set_header Host $host; # 设置发送到后端服务器的HTTP头
proxy_pass http://backend; #负载均衡后端服务器

这样就可以实现IP透传,将客户端真实IP发送给后端服务器,方便后续处理。

2、白名单限制

有时候我们需要限制某些IP访问NGINX服务器,这时可以用白名单限制来实现。在NGINX配置文件中,一般使用deny和allow指令来实现IP白名单限制。

先在http段中加入如下配置:

geo $client1 {
    default ;
    1.2.3.4/32 1;
    # 其他IP
}
其中,geo指令用于定义一个内存变量$client1,它表示是否为允许的IP地址。default 表示默认值为不允许,1.2.3.4/32 1表示指定一个允许的IP地址,可以指定多个IP地址。
然后在server段中加入以下配置:

location / {
    if ($client1 = ) {
        return 403; # 拒绝访问
    }
    # 其他配置
}
这样,当访问的IP地址不在白名单列表中时,会返回403错误,拒绝访问。当然,也可以用正则表达式的方式优化IP地址匹配。

以上为nginx的配置黑白名单和IP透传的配置方法。

0条评论
0 / 1000
张****江
2文章数
0粉丝数
张****江
2 文章 | 0 粉丝
张****江
2文章数
0粉丝数
张****江
2 文章 | 0 粉丝
原创

nginx黑白名单、IP透传配置

2023-06-12 09:26:34
189
0

在nginx日常使用中,IP透传可以帮助我们在使用nginx反向代理时正确获取客户端IP地址,而白名单限制则可以帮助我们限制只允许特定IP地址或IP地址段的客户端访问我们的网站,以下是如何在nginx中如何配置IP透传以及配置黑白名单。

1、IP透传

当NGINX作为WEB服务器的反向代理时,我们通常需要将客户端的真实IP透传到后端服务器,这样才能正确记录访问日志和进行客户端IP统计。

首先需要在NGINX的配置文件中添加如下配置:

set_real_ip_from  .../; #允许任何IP
real_ip_header    X-Real-IP;  #表示从X-Real-IP的HTTP头中获取客户端IP

其中set_real_ip_from用于配置可以信任的IP地址,如果没有指定,则默认从所有IP地址接收真实IP。real_ip_header则是指定从HTTP头中获取真实IP的字段,默认为X-Forwarded-For。

然后在server段中加入以下配置:

proxy_set_header X-Real-IP $remote_addr; # 设置发送到后端服务器的HTTP头
proxy_set_header Host $host; # 设置发送到后端服务器的HTTP头
proxy_pass http://backend; #负载均衡后端服务器

这样就可以实现IP透传,将客户端真实IP发送给后端服务器,方便后续处理。

2、白名单限制

有时候我们需要限制某些IP访问NGINX服务器,这时可以用白名单限制来实现。在NGINX配置文件中,一般使用deny和allow指令来实现IP白名单限制。

先在http段中加入如下配置:

geo $client1 {
    default ;
    1.2.3.4/32 1;
    # 其他IP
}
其中,geo指令用于定义一个内存变量$client1,它表示是否为允许的IP地址。default 表示默认值为不允许,1.2.3.4/32 1表示指定一个允许的IP地址,可以指定多个IP地址。
然后在server段中加入以下配置:

location / {
    if ($client1 = ) {
        return 403; # 拒绝访问
    }
    # 其他配置
}
这样,当访问的IP地址不在白名单列表中时,会返回403错误,拒绝访问。当然,也可以用正则表达式的方式优化IP地址匹配。

以上为nginx的配置黑白名单和IP透传的配置方法。

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0