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

相关文章

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

Nginx添加内置模块过程

《Nginx添加内置模块过程》文章指导如何检查并添加Nginx的with-http_gzip_static模块:确认该模块未默认安装后,需下载同版本源码重新编译,备份替换原有二进制文件,最后重启服务验... 目录1、查看Nginx已编辑的模块2、Nginx官网查看内置模块3、停止Nginx服务4、Nginx

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

通过配置nginx访问服务器静态资源的过程

《通过配置nginx访问服务器静态资源的过程》文章介绍了图片存储路径设置、Nginx服务器配置及通过http://192.168.206.170:8007/a.png访问图片的方法,涵盖图片管理与服务... 目录1.图片存储路径2.nginx配置3.访问图片方式总结1.图片存储路径2.nginx配置

Nginx禁用TLSv1.0 1.1改为TLSv1.2 1.3的操作方法

《Nginx禁用TLSv1.01.1改为TLSv1.21.3的操作方法》使用MozillaSSL配置工具生成配置,修改nginx.conf的ssl_protocols和ssl_ciphers,通... 目录方法一:方法二:使用 MoziChina编程lla 提供的 在线生成SSL配置工具,根据自己的环境填充对应的

nginx配置错误日志的实现步骤

《nginx配置错误日志的实现步骤》配置nginx代理过程中,如果出现错误,需要看日志,可以把nginx日志配置出来,以便快速定位日志问题,下面就来介绍一下nginx配置错误日志的实现步骤,感兴趣的可... 目录前言nginx配置错误日志总结前言在配置nginx代理过程中,如果出现错误,需要看日志,可以把

Nginx进行平滑升级的实战指南(不中断服务版本更新)

《Nginx进行平滑升级的实战指南(不中断服务版本更新)》Nginx的平滑升级(也称为热升级)是一种在不停止服务的情况下更新Nginx版本或添加模块的方法,这种升级方式确保了服务的高可用性,避免了因升... 目录一.下载并编译新版Nginx1.下载解压2.编译二.替换可执行文件,并平滑升级1.替换可执行文件

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么