文档章节

haproxy 透明代理

eddy_linux
 eddy_linux
发布于 2015/11/24 21:08
字数 480
阅读 1630
收藏 7
环境要求:
    kernel大于2.6.25
    iptables大于1.4.0
    
系统:rhel 6.3 x86_64
    Linux puppetmaster.info.com 2.6.32-279.el6.x86_64
    iptables v1.4.7
    
拓扑:
   客户端:192.168.1.101---------haproxy节点:192.168.1.102-------------后端服务器节点:192.168.1.103
   
   
1.安装支持透明代理的haproxy
    版本:HA-Proxy version 1.4.21 
    tar -xvf haproxy-1.4.21.tar.gz
    cd haproxy-1.4.21 
    make TARGET=linux26 USE_LINUX_TPROXY=1
    make install target=linux26 prefix=/usr/local/haproxy
2.添加haproxy节点防火墙条目
    #!/bin/bash
    iptables -t mangle -N DIVERT
    iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
    iptables -t mangle -A DIVERT -j MARK --set-mark 222
    iptables -t mangle -A DIVERT -j ACCEPT
    ip rule add fwmark 222 lookup 100
    ip route add local 0.0.0.0/0 dev lo table 100 
       
3.haproxy配置文件
我这里设置了一个7层代理和四层代理
# HAProxy configuration file
global
#       uid 99
#       gid 99
        daemon
        stats socket /var/run/haproxy.stat mode 600
        log 127.0.0.1 local4
        maxconn 40
        ulimit-n 80013
        pidfile /var/run/haproxy.pid
defaults
        log global
        mode    http
        contimeout      4000
        clitimeout      42000
        srvtimeout      43000
        balance roundrobin
listen  VIP_Name 192.168.1.102:80
        mode    http
        option  forwardfor
        source 0.0.0.0 usesrc clientip
        cookie  SERVERID insert nocache indirect
        server server1 192.168.1.103:80 weight 1 cookie server1 check
        server  backup 127.0.0.1:80 backup
        option redispatch
listen  VIP_mysql 192.168.1.102:3306
        mode    tcp
        source 0.0.0.0 usesrc clientip
        server server1 192.168.1.103:3306
        server  backup 127.0.0.1:3306 backup
        option redispatch
在客户机上需要把默认路由和网关都只想haproxy的节点
[root@client1 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     192.168.1.102   255.255.255.0   UG    0      0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         192.168.1.102   0.0.0.0         UG    0      0        0 eth0 
[root@client1 ~]# route add default gw 192.168.1.102
[root@client1 ~]# route add -net 192.168.1.0/24 gw 192.168.1.102 
[root@client1 ~]# route del default gw 192.168.1.1      

4.添加转发和重定向
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
echo 1 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 1 > /proc/sys/net/ipv4/conf/eth0/send_redirects

5.验证
访问 
 
[root@client1 ~]# netstat -anutlp|grep :80
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      1231/nginx          
tcp        0      0 192.168.1.103:80            192.168.1.101:39349         ESTABLISHED 1245/nginx 
我们看到获取到为客户端ip地址

访问 192.168.1.102:3306端口
[root@client1 ~]# netstat -anutlp|grep :3306
tcp        0      0 :::3306                     :::*                        LISTEN      1584/mysqld         
tcp        0      0 ::ffff:192.168.1.103:3306   ::ffff:192.168.1.101:47909  ESTABLISHED 1584/mysqld 
也是获取客户端ip地址


© 著作权归作者所有

共有 人打赏支持
eddy_linux
粉丝 21
博文 135
码字总数 188789
作品 0
成都
程序员
私信 提问
HAproxy 1.5.0 dev12 发布

HAproxy 1.5.0 dev12 发布,该版本最主要的是增加客户端和服务器端的原生 SSL 支持,其他方面包括新的 ACL 和模式,支持老的 Linux 内核上的 IPv6 透明模式,可通过 nice 关键字来修改会话的...

oschina
2012/09/11
1K
0
高可用高性能负载均衡软件HAproxy详解指南-第一章(简介、安装)

第一章:HAproxy简介及安装配置 对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.com 目录 HAproxy简介 为什么要使用HAproxy haproxy 性能特点 负...

好笔记运维
06/26
0
0
负载均衡工具haproxy安装,配置,使用

一,什么是haproxy HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代 理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点...

晨曦之光
2012/03/09
181
1
千万级并发HAproxy均衡负载系统介绍

Haproxy介绍及其定位 HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。根据官方数据,其最高极限支持10G的并发。 HAProx...

范堡
2010/05/26
23.5K
4
千万级并发HAproxy均衡负载系统介绍

Haproxy介绍及其定位 HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。根据官方数据,其最高极限支持10G的并发。 HAProx...

晨曦之光
2012/03/09
242
1

没有更多内容

加载失败,请刷新页面

加载更多

SpringBoot与pageHelper版本问题

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.6.RELEASE</version></parent> <dependency>......

WALK_MAN
11分钟前
1
0
PHP开发支付宝微信个人免签支付接口实例

这是一个PHP开发支付宝微信个人免签支付接口实例,支付宝微信即时到帐接口,使用原生支付宝即时到帐接口修改而来,即可实现多接口收款功能,开发只需要按照支付宝即时到帐接口开发即可,减少...

sucaihuo
16分钟前
2
0
《孩子,你慢慢来》的读书笔记与读后感2600字

《孩子,你慢慢来》的读书笔记与读后感2600字: 龙——保护儿童的思维: 今天读《孩子,你慢慢来》龙这一节,安安的妈妈是中国人,她在安安两岁的时候就认识到安安有着固执的个性。安安正是处...

原创小博客
27分钟前
2
0
kubernetes每个节点创建一个服务的Pod

1. 问题场景 希望一个worker节点上仅部署同样的服务一个. 比如: kubernets有三个worker节点,三个节点部署N个副本的api服务, 为了提高服务效率希望加入缓存,需要为三个节点个部署一个redis服务...

jimmywa
30分钟前
5
0
搭建Git服务器

Git本身是没有服务器和客户端的区别,但是如果我们要共享git仓库时,就需要ssh、http,它们就有服务器和客户端的区别。 Windows平台下搭建Git服务器 1、在自己电脑搭建Git服务器,且只有自己...

国仔饼
45分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部