首页 » Linux » nginx和haproxy作为负载均衡获取真实ip的方法

nginx和haproxy作为负载均衡获取真实ip的方法

 
文章目录

nginx代理后端服务器获取客户端真实ip

方法一:

代理上的配置如下:

[root@7-node1 conf.d]# cat proxy.conf 
server {
        listen 80;

location / {
        proxy_pass http://proxy_server_pools;
        proxy_set_header Host  $host;
        #proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For  $remote_addr;#nginx代理添加这条命令就可以了。添加在location下或者http下面
}
}
upstream proxy_server_pools {
        server 192.168.7.221 weight=1;
        server 192.168.7.223 weight=3;
}

后端nginx服务器只需要配置日志格式为以下,最后真实ip出现在最后一列。

log_format  main  '$remote_addr - $remote_user [$time_local] "$request"  '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

方法二:

代理上的配置如下,其实和方法一一样也是可以的,添加了一行,我测试的时候不添加也是可以的。

[root@7-node1 conf.d]# cat proxy.conf 
server {
        listen 80;

location / {
        proxy_pass http://proxy_server_pools;
        proxy_set_header Host  $host;
        proxy_set_header X-Real-IP  $remote_addr;#这一行加不加都可以,测试过了。
        proxy_set_header X-Forwarded-For  $remote_addr;#nginx代理添加这条命令就可以了。添加在location下或者http下面
}
}
upstream proxy_server_pools {
        server 192.168.7.221 weight=1;
        server 192.168.7.223 weight=3;
}

后端配置: 在http模块下添加以下两行就可以,最后真实ip就会出现在第一列,所以日志格式不用添加$httpxforwarder_for,

set_real_ip_from 192.168.7.0/24;#这个是内网的网段ip
real_ip_header  X-Forwarded-For

haproxy负载均衡后端服务器获取客户端真实ip

方法一:

haproxy配置如下: 在default或frontend或者backend模块下添加以下配置就可以了:option forwardfor
在default下配置,对所有的后端都会生效,在frontend下配置,对转到下面的backend下生效,在backend配置,只对此下面的后端服务器生效,不放心,可以在这三个上面都添加

后端nginx服务器只需要配置日志格式为以下,最后真实ip出现在最后一列。

log_format  main  '$remote_addr - $remote_user [$time_local] "$request"  '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

方法二:

haproxy配置和方法一一样, 后端服务器可以添加以下配置:
在http模块下添加以下两行就可以,最后真实ip就会出现在第一列,所以日志格式不用添加$httpxforwarder_for,

set_real_ip_from 192.168.7.0/24;#这个是内网的网段ip
real_ip_header  X-Forwarded-For

其实nginx和haproxy配置方法都一样,至少后端的服务器一样,只是我们是想让客户端的ip出现在第几列的问题

 

原文链接:nginx和haproxy作为负载均衡获取真实ip的方法,转载请注明来源!

1