nginx中Host、X-Real-IP、X-Forwarded-For的作用

2023-11-06 22:40
文章标签 作用 ip nginx forwarded real host

本文主要是介绍nginx中Host、X-Real-IP、X-Forwarded-For的作用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

proxy_set_header的作用

  • 1 proxy_set_header
  • 2 X-Real-IP
  • 3 host
  • 4 X-Forwarded-For
  • 5 proxy_set_header 的作用

1 proxy_set_header

首先说明proxy_set_header是用来设置请求头的,设置了请求头后,后端服务器就可以获取到这些变量值。

2 X-Real-IP

是指获取客户端的真实IP,如果设置了$remote_addr这个值,后端服务器就能获取到客户端的真实IP.

3 host

1.host的值设置为 p r o x y h o s t , 是 指 p r o x y p a s s 中 设 置 的 h o s t 值 , 也 就 是 192.168.1.3 , 也 就 是 服 务 器 的 I P 地 址 。 2. 若 客 户 端 发 过 来 的 请 求 h e a d e r 中 有 H O S T 这 个 字 段 , proxyhost,是指proxy_pass中设置的host值,也就是192.168.1.3,也就是服务器的IP地址。 2.若客户端发过来的请求header中有HOST这个字段, proxyhostproxypasshost192.168.1.3IP2.headerHOSThttp_host和 h o s t 表 示 的 就 是 原 始 请 求 h o s t , 比 如 请 求 的 时 候 H O S T 的 值 是 h t t p : / / t e s t . c o m , 那 么 反 向 代 理 后 还 是 h t t p : / / t e s t . c o m 。 3. 若 客 户 端 发 过 来 的 请 求 h e a d e r 中 没 有 H O S T 这 个 字 段 , host表示的就是原始请求host,比如请求的时候HOST的值是http://test.com,那么反向代理后还是http://test.com。 3.若客户端发过来的请求header中没有HOST这个字段, hosthostHOSThttp://test.comhttp://test.com3.headerHOSThost表示nginx代理服务器的地址,也就是此例中的192.168.1.2。
4. h t t p h o s t 不 是 一 个 固 定 的 变 量 , 它 其 实 是 httphost不是一个固定的变量,它其实是 httphosthttp_HEADER通配后的结果,例如 h t t p c o n t e n t t y p e 表 示 请 求 头 里 c o n t e n t − t y p e 属 性 的 值 , 同 理 , http_content_type表示请求头里content-type属性的值,同理, httpcontenttypecontenttypehttp_host指的就是请求头里的host属性。

4 X-Forwarded-For

这个变量的值有KaTeX parse error: Double subscript at position 12: proxy_add_x_̲forwarded_for和remote_addr,在只有一个代理服务器的转发的情况下,两者的效果貌似差不多,都可以真实的显示出客户端原始ip。
用户A的IP是192.168.1.1,请求一个经过两次nginx转发的应用,在第一台nginx中(192.168.1.2),配置如下:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
这时: KaTeX parse error: Double subscript at position 12: proxy_add_x_̲forwarded_for和remote_addr的值为用户ip:192.168.1.1
到第二台nginx,配置如下:
proxy_set_header X-Forwarded-For KaTeX parse error: Double subscript at position 12: proxy_add_x_̲forwarded_for; …proxy_add_x_forwarded_for变量,X-Forwarded-For部分包含的是用户的真实ip,$remote_addr部分的值是上一台nginx的ip地址( 192.168.1.2),那么X-Forwarded-For的值就变成了"用户的真实ip,第一台nginx的ip",也就是“192.168.1.1, 192.168.1.2”

5 proxy_set_header 的作用

proxy_set_header用来设定被代理服务器接收到的header信息。

在这里插入图片描述

这篇关于nginx中Host、X-Real-IP、X-Forwarded-For的作用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/359493

相关文章

Android fill_parent、match_parent、wrap_content三者的作用及区别

这三个属性都是用来适应视图的水平或者垂直大小,以视图的内容或尺寸为基础的布局,比精确的指定视图的范围更加方便。 1、fill_parent 设置一个视图的布局为fill_parent将强制性的使视图扩展至它父元素的大小 2、match_parent 和fill_parent一样,从字面上的意思match_parent更贴切一些,于是从2.2开始,两个属性都可以使用,但2.3版本以后的建议使

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository。如果采用原始直接打包放到lib目录的方式进行处理,便对项目的管理带来一些不必要的麻烦。例如版本升级后需要重新打包并,替换原有jar包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们

Windows下Nginx的安装及开机启动

1、将nginx-1.16.1.zip解压拷贝至D:\web\nginx目录下。 2、启动Nginx,两种方法: (1)直接双击nginx.exe,双击后一个黑色的弹窗一闪而过。 (2)打开cmd命令窗口,切换到nginx目录下,输入命令 nginx.exe 或者 start nginx ,回车即可。 3、检查nginx是否启动成功。 直接在浏览器地址栏输入网址 http://lo

nginx介绍及常用功能

什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务。 Apache:重量级的,不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。这些都决定了Apache不可能成为高性能WEB服务器  nginx:

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

web群集--nginx配置文件location匹配符的优先级顺序详解及验证

文章目录 前言优先级顺序优先级顺序(详解)1. 精确匹配(Exact Match)2. 正则表达式匹配(Regex Match)3. 前缀匹配(Prefix Match) 匹配规则的综合应用验证优先级 前言 location的作用 在 NGINX 中,location 指令用于定义如何处理特定的请求 URI。由于网站往往需要不同的处理方式来适应各种请求,NGINX 提供了多种匹

nginx长连接的问题

转自: http://www.360doc.com/content/12/1108/17/1073512_246644318.shtml

NGINX轻松管理10万长连接 --- 基于2GB内存的CentOS 6.5 x86-64

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=190176&id=4234854 一 前言 当管理大量连接时,特别是只有少量活跃连接,NGINX有比较好的CPU和RAM利用率,如今是多终端保持在线的时代,更能让NGINX发挥这个优点。本文做一个简单测试,NGINX在一个普通PC虚拟机上维护100k的HTTP

CRtmpServer转推流到Nginx Rtmp及SRS(SimpleRtmpServer)的经历

转自:http://blog.csdn.net/fengyily/article/details/42557841 本人一直用的是CRtmpServer服务,在CRtmpServer服务中根据自已的想法也加入了许多功能,如通过http接口来加载配置等,苦于不支持HLS,自已添加ts分片水平又有限,思来想去决定借助SimpleRtmpServer的HLS功能。说干就干,马上查找相关资源

由Lua 粘合的Nginx生态环境

转自:http://blog-zq-org.qiniucdn.com/pyblosxom/oss/openresty-intro-2012-03-06-01-13.html -- agentzh tech-club.org 演讲听录 免责聲明 Lua 粘合的 Nginx 生态环境 2.1. openresty 2.2. 配置小语言 2.3. ngx_drizzle 2.4.