X-real-ip与X-Forwarded-For
经过反向代理后,客户端与web服务器之间添加了中间层,因此:
1.代理服务器使用$remote_addr拿到的会是客户端的ip
2. web服务器使用$remote_addr拿到的会是代理服务器的ip
3.客户端使用getRemoteAddr()拿到的会是反向代理服务器的ip
为了让服务器能得到客户端的ip,可以在nginx中做些赋值操作:
1.proxy_set_header X-real-ip $remote_addr;
即在请求头部放入真实ip
2.proxy_set_header X-Forwarded-For $proxy_add_x_forward-for;
这一段的意思是: 添加一个$proxy_add_x_forward-for到X-Forwarded-For
设置X-Forwarded-For后,每次经过代理转发都会有记录,格式是: client,proxy1,proxy2,这是一个非rfc标准,因此默认没有,需要手动添加,
那么$proxy_add_x_forwarded_for又是什么?
$proxy_add_x_forwarded_for变量包含客户端请求头中的"X-Forwarded-For",与$remote_addr两部分,他们之间用逗号分开。
X-real-ip与X-Forwarded-For的更多相关文章
- express中是如何处理IP的?
		express获取client_ip req.ip // 获取客户端ip req.ips // 获取请求经过的客户端与代理服务器的Ip列表 查看源码 定义获取ip的入口, // 源码 request. ... 
- Windows Registry Security Check
		catalog . Windows注册表 . Windows注册表包含的攻击向量 . 注册表安全配置基线标定 1. Windows注册表 注册表(Registry,繁体中文版Windows称之为登录档 ... 
- 入侵检测中需要监控的注册表路径研究(Windows Registry Security Check)
		1. Windows注册表简介 注册表(Registry,繁体中文版Windows称之为登录档)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息.早在Wind ... 
- PatentTips - MPLS Network System
		MPLS (Multi Protocol Label Switching) network system has been watched with keen interest as a techni ... 
- Wireshark抓包分析/TCP/Http/Https及代理IP的识别
		前言 坦白讲,没想好怎样的开头.辗转三年过去了.一切已经变化了许多,一切似乎从没有改变. 前段时间调研了一次代理相关的知识,简单整理一下分享之.如有错误,欢迎指正. 涉及 Proxy IP应用 原理/ ... 
- 根据Request获取客户端IP 内网IP及外网IP
		在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr() ,这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实 ... 
- Java获取本机ip和服务器ip
		一.获取服务器IP InetAddress addr = InetAddress.getLocalHost().getHostAddress();//获得本机IP 二.获取客户端本机IP String ... 
- JAVA获取客户端IP地址
		在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ... 
- 多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合
		在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实I ... 
- servlet request getHeader(“x-forwarded-for”) 获取真实IP
		request方法客户端IP: request.getRemoteAddr() 输出:192.168.0.106 客户端主机名:request.getRemoteHost()输出:abc reques ... 
随机推荐
- 在多线程的情况下是由Iterator遍历修改集合对象,报ConcurrentModificationException()异常的根因分析
			遍历List时抛ConcurrentModificationException异常原理分析 http://www.blogjava.net/houlinyan/archive/2008/04/ ... 
- Iocomp控件教程之LinearGauge--线性刻度尺控件
			线性刻度尺-线性刻度尺控件(LinearGauge)是一个具有线性表达式刻度的图像控件.支持多达5种颜色断面和4种指示器样式,相同功能,查看线性对数刻度尺(Linear Log Gauge)控件内容 ... 
- nginx日志统计流量
			cat access.log |awk '{sum+=$10} END {print sum/1024/1024/1024}' $10是nginx字段bytes_sent 字段,根据自己的日志格式修改 ... 
- sublime 插件篇
			添加插件 进入https://packagecontrol.io/installation 找到 或者 直接复制 import urllib.request,os,hashlib; h = '6f ... 
- php判断页面是否是微信打开的示例(微信打开网页)
			代码如下: $user_agent = $_SERVER['HTTP_USER_AGENT'];if (strpos($user_agent, 'MicroMessenger') === false) ... 
- Borg Maze - poj 3026(BFS + Kruskal 算法)
			Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9821 Accepted: 3283 Description The B ... 
- java栈的最大深度?
			1. 概述 某公司面试,总监大叔过来,问了图论及栈的最大深度,然后^_^ 一直记着,今天搞一下 2. 代码 package com.goodfan.test; public class JavaSta ... 
- 07 在Windows下编译Memcached
			一:windows下编译Memcached (1)下载地址dll:http://down.51cto.com/data/442606 (2)在php下输出 echo phpinfo():查看php的版 ... 
- JavaWeb学习总结第五篇--认识Cookie机制
			Cookie机制 前言 会话跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie和Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服 ... 
- vue面试题,知识点汇总(有答案)
			一. Vue核心小知识点 1.vue中 key 值的作用 key 的特殊属性主要用在 Vue的虚拟DOM算法,在新旧nodes对比时辨识VNodes.如果不使用key,Vue会使用一种最大限度减少动态 ... 
