ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
HAPROXY TCP ???? ?? ???
CLIENT IP ?? ??
??? ( http://xenonix.com )
TABLE OF CONTENTS
HAProxy ? ??............................................................................................................................................. 2
?? ??? ? ? Source IP ??................................................................................................................... 2
HAProxy TCP ???? ?? ??? Source IP ?? ??............................................................................... 3
HAProxy Proxy Protocol ?? ??????............................................................................................... 4
Apache HTTPD ? Proxy Protocol ?? ??................................................................................................ 4
HAProxy Proxy Protocol ?? ??.............................................................................................................. 6
Source IP ??............................................................................................................................................. 6
Proxy Protocol ??? ? ????................................................................................................................ 7
?? ?? ....................................................................................................................................................... 8
???? ????? ??? ? ????? ?? ??? ???? ??? ??? ?? ???
????? ??. ????? Nginx ?? ??? ????? ???? ?? ??? ??? ????
??? ??? ??? ?? ?? ??? ?? ???? ??? ???? ???? ?? ????? ??
???? ??.
?? HAProxy ? ?????? ???? ??? ??. ????? HAProxy ?? Nginx ? ????? ?
??? ??? ??? ???, ?? ?? ?? ???? ??? ???? ?? ???? ?????
?? ???? ???? ?? ?? ?? ? ??? ????. ?? ???? HAProxy ? ???? ???
?? ?? ???? ????.
HAPROXY ? ??
HAProxy ? ? ?? ? ??? ????? ??? ??? ??? L4, L7 ? ??? ?? ??? ? ???
???.
?? ??? Nginx ?? ???? ?? ???? HTTP ????? ?? ?????? ???. ?? HTTP
?? HTTPS ??? ????? ???? ???? ??? ?????? ??? ??? ????
??? ??? ??? ?? ??.
??? ??? ?? SMTP, DBMS ?? ???? ????? ?? ?? ????? ?? ???? ???
??? HAProxy ? ???? ??? ? ??. ?? ??? HAProxy ? HTTP ? TCP ? ?? ???
????.
?? ??? ? ? SOURCE IP ??
?? ?? ??? ?? ?? HTTP ????? Layer 4 ? TCP ?? ???? ??. ???? HTTP ???
???? ???? TCP ????? HTTP ?????? ????. ? ?? HTTP ??? ??? ????
TCP ??? ???? ?? ???? ??? ?? ??? ? ???? ???? ?? ???.
?, ?? TCP ??? ???? ?? ??? ???? ?? ?????.
?????? ??? ?? ???? ???? ???? ?? ??? ???? ??. ?? ??? ???
?? ?? ??? ?????? ?? ????? ?? ?????? Source IP ?? ?? ??? IP ?
?? IP ? ????.
?? ????? ??? ?? ?? IP ? ??? ? ??? ??? ???, ?? IP ?? ?????
??? ??? ?? ??? ?? ??? IP ?? ??? ??? ??? ??? ??.
??? ??? HAProxy ?? ??? ?? ?? ???? Proxy ???? ? ? ?? ???? ???.
???? ???? ???? L4 ??? ?? ? ???? ??? ??? ???? ?? ??? ???
??? L4 ???? Client IP ? ?? ??? ????? ??? ???? ?? ????.
( ??? ???? ?? ???? ???? ??? ???? ????? ?? ?? ?? ? ??. )
HAPROXY TCP ???? ?? ??? SOURCE IP ?? ??
??? ??? ?? ?? ??? ?? ?? ????? Source IP ? ??? ???? ???.
HAProxy ? Source IP ? ?? ??? ???? ???? Proxy Protocol ? ????. HTTP ? ??
????? X-Forwareded-For ??? ?? ??? ? ?? ??? ?? ???? ??? ? ??? TCP ?
??? ??? ?? ??? ??? ????? ???? ??.
?? ???
??? 1
??? 2
??? 3
192.168.0.10
10.0.0.1
10.0.0.1
10.0.0.1
10.0.0.1
??????
10.0.0.1 ???
?? ???
??? 1
??? 2
??? 3
192.168.0.10
10.0.0.1
192.168.0.10
192.168.0.10
192.168.0.10
????? IP
192.168.0.10
OK
HAPROXY PROXY PROTOCOL ?? ??????
HAProxy ? Proxy Protocol ? ???? ??????? ??? ??.
? Elastic Load Balancing
? Dovecot 2.2.19 ??
? exaproxy 1.0.0 ??
? exim 4.83 ??
? gunicorn 0.15.0 ??
? haproxy 1.5-dev3 ??
? hitch
? nginx 1.5.12 ??
? Percona DB Server 5.6.25-73.0 ??
? postfix 2.10 ??
? stud
? stunnel 4.45 ??
? Apache HTTPD 2.2 ? 2.4
? varnish 4.1 ??
? MariaDB 10.3.1 ??
??? ???? ?? Proxy Protocol ? ???? ?? ??????? ??? ??.
? apache ATS
? squid
? MySQL
APACHE HTTPD ? PROXY PROTOCOL ?? ??
? ??? Apache HTTPD ? ???? ??? ???? ????? Proxy Protocol ? ???? ???.
?? ??? ?? ??? ?? ????? ??. ??? ?? ?? ??? ???? ? ??? ?
????? ?????. ?? ?? Github ? ???? ?? ??? ?? ???? ?? ??? ??.
https://github.com/roadrunner2/mod-proxy-protocol
? ??? ?? ? ???? ??? ???? ?? apache-devel ? ???? ??.
Ubuntu
apt-get install apache2-dev
CentOS
yum install httpd-dev
?? ?? ?? mod_proxy_protocol.c ? ?? ?????? ??? ?? ????.
make
??? ?? ??? ?? ??? ?? ???.
?? ls -la ? ??? ??? ?? .libs ????? ???? ??.
.libs ???? ??? ???? ??? ?? ?? ??? ? ? ??.
??? mod_proxy_protocol.so ??? Apache ?? ????? ??? ???. ??? Apache ??
??? ??? ????.
LoadModule proxy_protocol_module {?? ????}/mod_proxy_protocol.so
??? ??? ???? ?? ???? VirtualHost ??? ??? ?? ProxyProtocol On ? ????.
???? ????? ??? ?? ????? ???? ??.
HAPROXY PROXY PROTOCOL ?? ??
HAProxy ? ?? 1.5 ???? Proxy Protocol ? ????? ??? ?? ??? ???? ? ????.
HAProxy ??? ?? ??. haproxy.cfg ??? ?? ??? ?? ?? ?? IP ?? send-proxy ?
?????? ?? ??.
SOURCE IP ??
Proxy Protocol ?? ??? ??? ?? REMOTE_ADDR ? ?? IP ? ?????
Proxy Protocol ? ????? ???? ? ??? ??? ?? REMOTE_ADDR ? ??? ????? IP ?
???.
PROXY PROTOCOL ??? ? ????
Proxy Protocol ? ???? TCP ?? ? ?? ??? ?? PROXY TCPx ?? ??? ?? ????. ???
HTTP ??????? ??? PROXY TCPx ?? ??? ???? ??? ??? ??? ???? Proxy
Protocol ??? ??? ??? ???? ?? ???.
???? Proxy Protocol ? ??? ??? HAProxy ? ?? ??, ?? ???? Proxy Protocol ???
???? ??. ??? ??? ????? ?? ?? ??? ??? ???.
?? ?? HAProxy ??? Proxy Protocol ? ???? ?? send-proxy ? ?????, ?? ?????
?? Proxy Protocol ? ?? ??? ?????? ??? ??? ?? ?? ? ??. ?? HAProxy ??
send-proxy ? ????, Apache ??? ProxyProtocol On ? ???? ??? ?? ??? ?? ??
??? ????.
??? ??? ??????. ?? ???? Proxy Protocol ? ??, HAProxy ??? send-proxy ???
??? ??? ? ??? ?? ?? ??? ????.
?? PROXY TCPx ?? ??? ???? ???? ??? ?? ????? ???? ???????
???? HAProxy ? Proxy Protocol ? ?? ??? ??? ??? ??? ? ?? ???? ????
??? ?? ??.
?? ??
http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt
https://www.haproxy.com/blog/haproxy/proxy-protocol/
https://www.haproxy.com/blog/preserve-source-ip-address-despite-reverse-proxies/
https://roadrunner2.github.io/mod-proxy-protocol/mod_proxy_protocol.html
https://mariadb.com/kb/en/library/proxy-protocol-support/

More Related Content

HAProxy TCP ???? ?? ??? Source IP ?? ??

  • 1. HAPROXY TCP ???? ?? ??? CLIENT IP ?? ?? ??? ( http://xenonix.com ) TABLE OF CONTENTS HAProxy ? ??............................................................................................................................................. 2 ?? ??? ? ? Source IP ??................................................................................................................... 2 HAProxy TCP ???? ?? ??? Source IP ?? ??............................................................................... 3 HAProxy Proxy Protocol ?? ??????............................................................................................... 4 Apache HTTPD ? Proxy Protocol ?? ??................................................................................................ 4 HAProxy Proxy Protocol ?? ??.............................................................................................................. 6 Source IP ??............................................................................................................................................. 6 Proxy Protocol ??? ? ????................................................................................................................ 7 ?? ?? ....................................................................................................................................................... 8
  • 2. ???? ????? ??? ? ????? ?? ??? ???? ??? ??? ?? ??? ????? ??. ????? Nginx ?? ??? ????? ???? ?? ??? ??? ???? ??? ??? ??? ?? ?? ??? ?? ???? ??? ???? ???? ?? ????? ?? ???? ??. ?? HAProxy ? ?????? ???? ??? ??. ????? HAProxy ?? Nginx ? ????? ? ??? ??? ??? ???, ?? ?? ?? ???? ??? ???? ?? ???? ????? ?? ???? ???? ?? ?? ?? ? ??? ????. ?? ???? HAProxy ? ???? ??? ?? ?? ???? ????. HAPROXY ? ?? HAProxy ? ? ?? ? ??? ????? ??? ??? ??? L4, L7 ? ??? ?? ??? ? ??? ???. ?? ??? Nginx ?? ???? ?? ???? HTTP ????? ?? ?????? ???. ?? HTTP ?? HTTPS ??? ????? ???? ???? ??? ?????? ??? ??? ???? ??? ??? ??? ?? ??. ??? ??? ?? SMTP, DBMS ?? ???? ????? ?? ?? ????? ?? ???? ??? ??? HAProxy ? ???? ??? ? ??. ?? ??? HAProxy ? HTTP ? TCP ? ?? ??? ????. ?? ??? ? ? SOURCE IP ?? ?? ?? ??? ?? ?? HTTP ????? Layer 4 ? TCP ?? ???? ??. ???? HTTP ??? ???? ???? TCP ????? HTTP ?????? ????. ? ?? HTTP ??? ??? ???? TCP ??? ???? ?? ???? ??? ?? ??? ? ???? ???? ?? ???. ?, ?? TCP ??? ???? ?? ??? ???? ?? ?????. ?????? ??? ?? ???? ???? ???? ?? ??? ???? ??. ?? ??? ??? ?? ?? ??? ?????? ?? ????? ?? ?????? Source IP ?? ?? ??? IP ? ?? IP ? ????.
  • 3. ?? ????? ??? ?? ?? IP ? ??? ? ??? ??? ???, ?? IP ?? ????? ??? ??? ?? ??? ?? ??? IP ?? ??? ??? ??? ??? ??. ??? ??? HAProxy ?? ??? ?? ?? ???? Proxy ???? ? ? ?? ???? ???. ???? ???? ???? L4 ??? ?? ? ???? ??? ??? ???? ?? ??? ??? ??? L4 ???? Client IP ? ?? ??? ????? ??? ???? ?? ????. ( ??? ???? ?? ???? ???? ??? ???? ????? ?? ?? ?? ? ??. ) HAPROXY TCP ???? ?? ??? SOURCE IP ?? ?? ??? ??? ?? ?? ??? ?? ?? ????? Source IP ? ??? ???? ???. HAProxy ? Source IP ? ?? ??? ???? ???? Proxy Protocol ? ????. HTTP ? ?? ????? X-Forwareded-For ??? ?? ??? ? ?? ??? ?? ???? ??? ? ??? TCP ? ??? ??? ?? ??? ??? ????? ???? ??. ?? ??? ??? 1 ??? 2 ??? 3 192.168.0.10 10.0.0.1 10.0.0.1 10.0.0.1 10.0.0.1 ?????? 10.0.0.1 ??? ?? ??? ??? 1 ??? 2 ??? 3 192.168.0.10 10.0.0.1 192.168.0.10 192.168.0.10 192.168.0.10 ????? IP 192.168.0.10 OK
  • 4. HAPROXY PROXY PROTOCOL ?? ?????? HAProxy ? Proxy Protocol ? ???? ??????? ??? ??. ? Elastic Load Balancing ? Dovecot 2.2.19 ?? ? exaproxy 1.0.0 ?? ? exim 4.83 ?? ? gunicorn 0.15.0 ?? ? haproxy 1.5-dev3 ?? ? hitch ? nginx 1.5.12 ?? ? Percona DB Server 5.6.25-73.0 ?? ? postfix 2.10 ?? ? stud ? stunnel 4.45 ?? ? Apache HTTPD 2.2 ? 2.4 ? varnish 4.1 ?? ? MariaDB 10.3.1 ?? ??? ???? ?? Proxy Protocol ? ???? ?? ??????? ??? ??. ? apache ATS ? squid ? MySQL APACHE HTTPD ? PROXY PROTOCOL ?? ?? ? ??? Apache HTTPD ? ???? ??? ???? ????? Proxy Protocol ? ???? ???. ?? ??? ?? ??? ?? ????? ??. ??? ?? ?? ??? ???? ? ??? ? ????? ?????. ?? ?? Github ? ???? ?? ??? ?? ???? ?? ??? ??. https://github.com/roadrunner2/mod-proxy-protocol
  • 5. ? ??? ?? ? ???? ??? ???? ?? apache-devel ? ???? ??. Ubuntu apt-get install apache2-dev CentOS yum install httpd-dev ?? ?? ?? mod_proxy_protocol.c ? ?? ?????? ??? ?? ????. make ??? ?? ??? ?? ??? ?? ???. ?? ls -la ? ??? ??? ?? .libs ????? ???? ??. .libs ???? ??? ???? ??? ?? ?? ??? ? ? ??.
  • 6. ??? mod_proxy_protocol.so ??? Apache ?? ????? ??? ???. ??? Apache ?? ??? ??? ????. LoadModule proxy_protocol_module {?? ????}/mod_proxy_protocol.so ??? ??? ???? ?? ???? VirtualHost ??? ??? ?? ProxyProtocol On ? ????. ???? ????? ??? ?? ????? ???? ??. HAPROXY PROXY PROTOCOL ?? ?? HAProxy ? ?? 1.5 ???? Proxy Protocol ? ????? ??? ?? ??? ???? ? ????. HAProxy ??? ?? ??. haproxy.cfg ??? ?? ??? ?? ?? ?? IP ?? send-proxy ? ?????? ?? ??. SOURCE IP ?? Proxy Protocol ?? ??? ??? ?? REMOTE_ADDR ? ?? IP ? ????? Proxy Protocol ? ????? ???? ? ??? ??? ?? REMOTE_ADDR ? ??? ????? IP ? ???.
  • 7. PROXY PROTOCOL ??? ? ???? Proxy Protocol ? ???? TCP ?? ? ?? ??? ?? PROXY TCPx ?? ??? ?? ????. ??? HTTP ??????? ??? PROXY TCPx ?? ??? ???? ??? ??? ??? ???? Proxy Protocol ??? ??? ??? ???? ?? ???. ???? Proxy Protocol ? ??? ??? HAProxy ? ?? ??, ?? ???? Proxy Protocol ??? ???? ??. ??? ??? ????? ?? ?? ??? ??? ???. ?? ?? HAProxy ??? Proxy Protocol ? ???? ?? send-proxy ? ?????, ?? ????? ?? Proxy Protocol ? ?? ??? ?????? ??? ??? ?? ?? ? ??. ?? HAProxy ?? send-proxy ? ????, Apache ??? ProxyProtocol On ? ???? ??? ?? ??? ?? ?? ??? ????. ??? ??? ??????. ?? ???? Proxy Protocol ? ??, HAProxy ??? send-proxy ??? ??? ??? ? ??? ?? ?? ??? ????. ?? PROXY TCPx ?? ??? ???? ???? ??? ?? ????? ???? ??????? ???? HAProxy ? Proxy Protocol ? ?? ??? ??? ??? ??? ? ?? ???? ???? ??? ?? ??.