haproxy+openresty实现反向代理和ip透传
Posted 家里没有醋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了haproxy+openresty实现反向代理和ip透传相关的知识,希望对你有一定的参考价值。
一、场景
两个不同的网络中,通过haproxy反向代理到后端网络nginx上,openresty转发流量到后端业务。需要后端业务的src ip、src port为真实用户ip、port。
我这里使用4台centos虚拟机实现,分别替代访问客户、haproxy节点、openresty节点、后端业务。
数据流:用户--->haproxy节点--->openresty节点--->后端业务。
1、haproxy部署
采用docker容器部署haproxy,命令如下:
docker run -d --network=host --name haproxy -v /root/haproxy:/usr/local/etc/haproxy:ro haproxy:1.9.7
--network=host,-v为指定host模式和配置文件挂载,根据自己爱好可要可不要。
2、haproxy配置
#----------------
# Global settings
#----------------
global
log 127.0.0.1 local0 info
maxconn 4000
daemon
defaults
mode tcp
log global
option tcplog
option dontlognull
#option http-server-close
option redispatch
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 500
listen mysql_proxy
bind 0.0.0.0:3307
mode tcp
option tcplog
#option forwardfor
source 0.0.0.0 usesrc clientip
server db 192.168.1.1:3306 check inter 2000 rise 2 fall 5 weight 1
以上是关于haproxy+openresty实现反向代理和ip透传的主要内容,如果未能解决你的问题,请参考以下文章