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

相关文章

python常用的正则表达式及作用

《python常用的正则表达式及作用》正则表达式是处理字符串的强大工具,Python通过re模块提供正则表达式支持,本文给大家介绍python常用的正则表达式及作用详解,感兴趣的朋友跟随小编一起看看吧... 目录python常用正则表达式及作用基本匹配模式常用正则表达式示例常用量词边界匹配分组和捕获常用re

Java 继承和多态的作用及好处

《Java继承和多态的作用及好处》文章讲解Java继承与多态的概念、语法及应用,继承通过extends复用父类成员,减少冗余;多态实现方法重写与向上转型,提升灵活性与代码复用性,动态绑定降低圈复杂度... 目录1. 继承1.1 什么是继承1.2 继承的作用和好处1.3 继承的语法1.4 子类访问父类里面的成

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

nginx启动命令和默认配置文件的使用

《nginx启动命令和默认配置文件的使用》:本文主要介绍nginx启动命令和默认配置文件的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录常见命令nginx.conf配置文件location匹配规则图片服务器总结常见命令# 默认配置文件启动./nginx

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

Windows的CMD窗口如何查看并杀死nginx进程

《Windows的CMD窗口如何查看并杀死nginx进程》:本文主要介绍Windows的CMD窗口如何查看并杀死nginx进程问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows的CMD窗口查看并杀死nginx进程开启nginx查看nginx进程停止nginx服务

SpringBoot 中 CommandLineRunner的作用示例详解

《SpringBoot中CommandLineRunner的作用示例详解》SpringBoot提供的一种简单的实现方案就是添加一个model并实现CommandLineRunner接口,实现功能的... 目录1、CommandLineRunnerSpringBoot中CommandLineRunner的作用