问题
我们在用nginx做反向代理的时候,通常会遇到一个问题:服务端解析请求时拿到的都是nginx代理服务器的ip,而不是真实的客户端ip
这对我们的业务处理或许存在一些问题,比如鉴权和限流等
反向代理HTTP
这里介绍nginx在反向代理http服务时如何获取客户端真实ip
配置中添加
proxy_set_header Remote_addr $remote_addr;
完整示例配置如下:
worker_processes auto;
error_log /var/log/nginx/error.log;
events {
# 每一个worker进程能够处理的最大连接数(与客户端的连接数+与上游服务器的连接数)
worker_connections 8096;
}
http {
include mime.types;
default_type appl

当使用nginx作为反向代理时,服务端接收到的请求IP通常是nginx的地址,而非客户端的真实IP,这影响了鉴权和限流等功能。在HTTP反向代理中,可以通过配置获取客户端IP。而在TCP反向代理中,需要更复杂的IP透传方案,涉及修改IP包源地址、服务端路由表和iptables设置,但需谨慎操作。
最低0.47元/天 解锁文章
3129

被折叠的 条评论
为什么被折叠?



