| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> proxy_pass和proxy_set_header浅析 -> 正文阅读 |
|
[系统运维]proxy_pass和proxy_set_header浅析 |
目录 背景部署项目,编辑Nginx配置文件时,用到了?proxy_pass和proxy_set_header,由于之前用的比较少,所以顺便去了解一波 proxy_pass
以上两端代码区别就是proxy_pass指令后边有没有“/”,这部分内容叫做URI。 如果我们想要要保持输入的请求原样不变传给后端,那么proxy_pass指令就不能带有URI部分。
当请求是?http://10.1.12.123:8080 时,
第一个配置处理之后传给后端应用的请求是 http://10.1.12.123:8080?
不变。
第二个配置会把请求 http://10.1.12.123:8080?
中与 location 匹配的部分("/abc/")替换为proxy_pass结尾的URI( "/" ),变成?http://10.1.12.123:8080
proxy_set_header
设定被代理服务器接收到的header信息,重定义发往后端服务器的请求头
语法:
$http_host:代理服务器本身IP,不改变请求头的值.
$proxy_host?会重新设置请求头
$host?请求未携带HOST请求头时为虚拟主机的主域名
$remote_addr:前一节点的IP,并不一定是用户的真实IP,客户端的ip,若有代理的话表示最后一个代理服务器的ip.
remote_addr表示的IP不可更改.如果可以随意更改的话,就无法建立正常的TCP连接.
设置被代理端接收到的远程客户端IP,如果不设置,则header信息中并不会透传远程真实客户端的IP地址。
X-Forwarded-For :XFF头,代表客户端,就是HTTP请求段的真实IP,只有通过了HTTP代理或负载均衡服务器时才会添加该项.
标准格式如下:
从标准格式可以看出,X-Forwarded-For头信息可以有多个,中间用逗号分隔,第一项为真实的客户端ip,剩下的就是曾经经过的代理或负载均衡的ip地址,经过几个就会出现几个。
此变量只是记录请求的服务器路由顺序,因为这个变量不管在客户端还是代理服务商都可以伪造.
?
不设置proxy_set_header,则默认host的值为proxy_pass后面跟的那个域名或者IP(一般写IP)
$proxy_add_x_forwarded_for变量包含客户端请求头中的"X-Forwarded-For",与$remote_addr用逗号分开,如果没有"X-Forwarded-For" 请求头,则$proxy_add_x_forwarded_for等于$remote_addr。
参考文档https://blog.csdn.net/u011774517/article/details/122862207 若有不当之处,恳请不吝赐教~ |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 22:46:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |