[TCP/IP][distributed] proxy protocol 是什么
问题描述:
在Web分布式系统中,一般会搭建复杂的load blance系统来提供高性能的web服务。
load blance有4层网络的,也有7层网络的。再经过这样的分布式网络之后,后面真正提供服务的
程序可能会丧失掉client的网络信息,也就是IP地址以及TCP端口。
解决方法:
为了解决这样的问题,存在着这样一种协议。叫做 Proxy Protocol。
正文
1. 协议实现
在三次握手之后,会增加一个TCP payload包,包payload长度48字节。如图:

示例,如下图所示的第四个包就是proxy protocol的包。

payload格式,根据V1,V2两个版本有所不同。如下是V1版本,是ASCII码格式:
PROXY TCP4 202.112.144.236 10.210.12.10 \r\n
PROXY TCP6 :da8::: :89c0:::: \r\n
PROXY UKNOWN\r\n
V2的略。(可参考文后的链接)
2. nginx proxy的配置方法
stream {
server {
listen ;
proxy_pass backend.example.com:;
proxy_protocol on;
}
}
3. nginx server的配置方法
http {
log_format elb_log '$proxy_protocol_addr';
server {
listen proxy_protocol;
root /usr/local/nginx/html;
index index.html index.htm;
server_name hello-world.com;
set_real_ip_from 192.168.10.0/;
real_ip_header proxy_protocol;
}
location / {
try_files $uri $uri/ /index.html;
proxy_pass http://backend.example2.com:8088;
proxy_set_header X-Forwarded-For $proxy_protocol_addr;
}
access_log /usr/local/nginx/stream.log elb_log;
}
参考资料:
https://www.jianshu.com/p/cc8d592582c9
[TCP/IP][distributed] proxy protocol 是什么的更多相关文章
- TCP/IP Four Layer Protocol Format Learning
相关学习资料 tcp-ip详解卷1:协议.pdf 目录 . 引言 . 应用层 . 传输层 . 网络层 0. 引言 协议中的网络字节序问题 在学习协议格式之前,有一点必须明白,否则我们在观察抓包数据的时 ...
- 【转】TCP/IP协议栈及OSI参考模型详解
OSI参考模型 OSI RM:开放系统互连参考模型(open systeminterconnection reference model) OSI参考模型具有以下优点: 简化了相关的网络操作: 提供设 ...
- TCP/IP协议栈及OSI参考模型详解
OSI参考模型 OSI RM:开放系统互连参考模型(open systeminterconnection reference model) OSI参考模型具有以下优点: 简化了相关的网络操作: 提供设 ...
- OSI 七层模型和 TCP/IP 协议比较
OSI (Open System Interconnection), 开放式系统互联参考模型.从下到上七层模型功能及其代表协议: 物理层(Physical) :规定了激活.维持.关闭通信端点之间的 ...
- TCP/IP卷一:第一章
================================================= 版權聲明:如需轉載,請列明出處:HingAglaiaWong@博客園 支持原創,是對作者最好的的鼓勵 ...
- 计算机网络基础之TCP/IP 协议栈
计算机网络基础之TCP/IP 协议栈 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.TCP/IP 协议栈概述 1>.什么是TCP/IP协议栈 Transmission C ...
- TCP/IP 协议栈及 OSI 参考模型详解
OSI参考模型 OSI RM:开放系统互连参考模型(open systeminterconnection reference model) OSI参考模型具有以下优点: 简化了相关的网络操作: 提供设 ...
- TCP/IP的Socket编程
1. TCP/IP.UDP的基本概念 TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,他是一个工业标准的协议集, ...
- TCP/IP HTPP
TCP/IP:Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协 ...
随机推荐
- LeetCode_242. Valid Anagram
242. Valid Anagram Easy Given two strings s and t , write a function to determine if t is an anagram ...
- html5 横向滑动导航栏
前提 需要引入: <script src="../assets/js/iscroll.js"></script> v4.2版本 ####html <! ...
- Tomcat教程(转)
转载链接: https://www.cnblogs.com/jingmoxukong/p/8258837.html?utm_source=gold_browser_extension 简介 Tomca ...
- 什么时候该用readfile() , fread(), file_get_contents(), fgets()?
fread() 和 readfile() fread() 最大一次性能读取 8k长度的字节数,所以不能一次性读取大文件去作下载. 优势在于,操作更加灵活,每次读取指定字节的内容,用于下载时方便控制服务 ...
- 【QT开发】信号转发器QSignalMapper的使用
QSignalMapper我们可以将它理解为一个信号翻译器或者说是哥信号转发器.它的主要应用在于可以实现一个函数相应不同按钮的实现功能.比如我们 实现一个计算器的时候,很多不同的按钮都有着差不多的功能 ...
- scrapy工具创建爬虫工程
1.scrapy创建爬虫工程:scrapy startproject scrape_project_name >scrapy startproject books_scrapeNew Scrap ...
- RabbitMQ基础命令rabbitmqctl
官网文档 https://www.rabbitmq.com/rabbitmqctl.8.html 一般操作命令后台管理页面都有的,部分没有(应用程序管理,和集群管理). 直接使用命令,必须配置环境变量 ...
- todo---callback
todo---callback https://blog.csdn.net/u010158267/article/details/51426963/
- Ribbon源
在Riibon中一个非常重要的组件为LoadBalancerClient,它作为负载均衡的一个客户端 ServiceInstance choose(String serviceId); 从负载均衡器中 ...
- Scala 面向对象编程之继承
extends关键字 // Scala中,让子类继承父类,与Java一样,也是使用extends关键字 // 继承就代表,子类可以从父类继承父类的field和method:然后子类可以在自己内部放入父 ...