本文主要是介绍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这个字段, proxyhost,是指proxypass中设置的host值,也就是192.168.1.3,也就是服务器的IP地址。2.若客户端发过来的请求header中有HOST这个字段,http_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这个字段, host表示的就是原始请求host,比如请求的时候HOST的值是http://test.com,那么反向代理后还是http://test.com。3.若客户端发过来的请求header中没有HOST这个字段,host表示nginx代理服务器的地址,也就是此例中的192.168.1.2。
4. h t t p h o s t 不 是 一 个 固 定 的 变 量 , 它 其 实 是 httphost不是一个固定的变量,它其实是 httphost不是一个固定的变量,它其实是http_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属性的值,同理, httpcontenttype表示请求头里content−type属性的值,同理,http_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的作用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!