开发者社区> 技术小胖子> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

nginx做反向代理负载均衡 后端服务器如何获取用户的IP

简介:
+关注继续查看

如果web程序需要获取用户IP的时候,通常使用了

HTTP_X_FORWARDED_FOR 和REMOTE_ADDR来获取。


1
2
3
4
5
6
7
dim realIP
If Request.ServerVariables("HTTP_X_FORWARDED_FOR")="" Then
realIP=Request.ServerVariables("REMOTE_ADDR")
Else
realIP=Request.ServerVariables("HTTP_X_FORWARDED_FOR")
End If
Response.write(realIP)

HTTP_X_FORWARDED_FOR 是http头传递过来的变量,如果用户用了代理,则该值取回来后为用户IP,代理服务器IP,(如果代理把用户IP传递过来的话。)

REMOTE_ADDR 是web服务器的socket里去回来的变量

如果web服务器在nginx的后端,

那么web程序取回来的REMOTE_ADDR 就是nginx服务器的IP了,

在nginx中 配置

1
2
3
4
5
6
7
location location ~*\.(aspx|ashx|asp)$
{
.....
       proxy_set_header X-forwarded-for $proxy_add_x_forwarded_for;
       proxy_set_header X-real-ip $remote_addr;
....
}

把nginx上取到的$proxy_add_x_forwarded_for的值添加到X-forwarded-for(http header http_x_forwarded)

把nginx上取到的$remote_addr的值给X-real-ip(htpp_x_real_ip)

$proxy_add_x_forwarded_for  是HttpProxyModule模块的变量;

引用官方解释

Contains client request-header "X-Forwarded-For" with separated by comma $remote_addr. If there is no X-Forwarded-For request-header, than $proxy_add_x_forwarded_for is equal to $remote_addr

如果没有这个请求头的话,$proxy_add_x_forwarded_for的值为$remote_addr

$remote_addr 是ngx_http_core_module的变量,为client的值,


nginx做了如上设置后,web端再用

IP1=Request.ServerVariables("HTTP_X_FORWARDED_FOR"))


IP2=Request.ServerVariables("HTTP_X_REAL_IP")

就能取回来了,当然 如果用户在没有使用http代理的情况下这2个值相等






      本文转自天山三害 51CTO博客,原文链接:http://blog.51cto.com/skybug/1343291,如需转载请自行联系原作者



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
服务器负载均衡
服务器负载均衡
0 0
RH358优化Web服务器流量--使用HAProxy终止HTTPS流量和并进行负载均衡
RH358优化Web服务器流量--使用HAProxy终止HTTPS流量和并进行负载均衡
0 0
SAP Netweaver的负载均衡消息服务器 vs CloudFoundry的App Router
SAP Netweaver的负载均衡消息服务器 vs CloudFoundry的App Router
0 0
QPS 提升60%,揭秘阿里巴巴轻量级开源 Web 服务器 Tengine 负载均衡算法
本文作者: 王发康(花名:毅松),GitHub ID @wangfakang ,Tengine 开源项目 maintainer,阿里巴巴技术专家,负责阿里巴巴 WEB 统一接入层的开发及维护。
0 0
单台服务器模拟负载均衡
单台服务器模拟负载均衡
0 0
网页直播源码,关于虚拟服务器的负载均衡
网页直播源码,关于虚拟服务器的负载均衡
0 0
图文详解:负载均衡添加默认服务器
在使用负载均衡服务前,必须至少添加一台默认服务器接收负载均衡转发的客户端请求。
319 0
如何实施异构服务器的负载均衡及过载保护?
能否根据异构服务器的处理能力来动态、自适应进行负载均衡及过载保护,是本文要讨论的问题。
356 0
过载保护+异构服务器的负载均衡,怎么设计?
负载均衡是指,将请求/数据分摊到多个操作单元上执行,关键在于均衡。
327 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
负载均衡是如何支撑几亿手机微博用户访问的 -高性能负载均衡研发和应用实践
立即下载
架构分析、数据整合、负载均衡,梦想旅行解析云上实践
立即下载
负载均衡 ALB的云上可观测能力最佳实践
立即下载