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

相关文章

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

Ubuntu 22.04 服务器安装部署(nginx+postgresql)

《Ubuntu22.04服务器安装部署(nginx+postgresql)》Ubuntu22.04LTS是迄今为止最好的Ubuntu版本之一,很多linux的应用服务器都是选择的这个版本... 目录是什么让 Ubuntu 22.04 LTS 变得安全?更新了安全包linux 内核改进一、部署环境二、安装系统

Keepalived+Nginx双机配置小结

《Keepalived+Nginx双机配置小结》本文主要介绍了Keepalived+Nginx双机配置小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1.1 软硬件要求1.2 部署前服务器配置调优1.3 Nginx+Keepalived部署1.3

nginx upstream六种方式分配小结

《nginxupstream六种方式分配小结》本文主要介绍了nginxupstream六种方式分配小结,包括轮询、加权轮询、IP哈希、公平轮询、URL哈希和备份服务器,具有一定的参考价格,感兴趣的可... 目录1 轮询(默认)2 weight3 ip_hash4 fair(第三方)5 url_hash(第三

nginx配置多域名共用服务器80端口

《nginx配置多域名共用服务器80端口》本文主要介绍了配置Nginx.conf文件,使得同一台服务器上的服务程序能够根据域名分发到相应的端口进行处理,从而实现用户通过abc.com或xyz.com直... 多个域名,比如两个域名,这两个域名其实共用一台服务器(意味着域名解析到同一个IP),一个域名为abc

nginx中重定向的实现

《nginx中重定向的实现》本文主要介绍了Nginx中location匹配和rewrite重定向的规则与应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 目录一、location1、 location匹配2、 location匹配的分类2.1 精确匹配2

Nginx之upstream被动式重试机制的实现

《Nginx之upstream被动式重试机制的实现》本文主要介绍了Nginx之upstream被动式重试机制的实现,可以通过proxy_next_upstream来自定义配置,具有一定的参考价值,感兴... 目录默认错误选择定义错误指令配置proxy_next_upstreamproxy_next_upst

nginx生成自签名SSL证书配置HTTPS的实现

《nginx生成自签名SSL证书配置HTTPS的实现》本文主要介绍在Nginx中生成自签名SSL证书并配置HTTPS,包括安装Nginx、创建证书、配置证书以及测试访问,具有一定的参考价值,感兴趣的可... 目录一、安装nginx二、创建证书三、配置证书并验证四、测试一、安装nginxnginx必须有"-

MySQL表锁、页面锁和行锁的作用及其优缺点对比分析

《MySQL表锁、页面锁和行锁的作用及其优缺点对比分析》MySQL中的表锁、页面锁和行锁各有特点,适用于不同的场景,表锁锁定整个表,适用于批量操作和MyISAM存储引擎,页面锁锁定数据页,适用于旧版本... 目录1. 表锁(Table Lock)2. 页面锁(Page Lock)3. 行锁(Row Lock

关于Nginx跨域问题及解决方案(CORS)

《关于Nginx跨域问题及解决方案(CORS)》文章主要介绍了跨域资源共享(CORS)机制及其在现代Web开发中的重要性,通过Nginx,可以简单地解决跨域问题,适合新手学习和应用,文章详细讲解了CO... 目录一、概述二、什么是 CORS?三、常见的跨域场景四、Nginx 如何解决 CORS 问题?五、基