文档章节

haproxy 透明代理

eddy_linux
 eddy_linux
发布于 2015/11/24 21:08
字数 480
阅读 1528
收藏 7
点赞 0
评论 0
环境要求:
    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
粉丝 18
博文 135
码字总数 188789
作品 0
成都
程序员
haproxy+mysql实现代理mysql

我们通常会碰到这样的业务场景: b主机和c数据库在同一个内网,a主机不能直接访问c数据库,我们可以通过在b主机上搭建代理让a访问c数据库,我们使用haproxy来干这个事情 centos7环境 mysql自...

小白的希望 ⋅ 06/08 ⋅ 0

haproxy nginx X-Forwarded-For的值

client(web 浏览器) ----> haproxy(acl backend)----> nginx (proxy_pass)----> java程序 地址如下: 1.1.1.1 2.2.2.2 3.3.3.3 默认正常的java程序看到的 X-Forwarded-For 为 1.1.1.1,2.2.2......

cuizhiliang ⋅ 06/18 ⋅ 0

Redis集群方案之Twemproxy+HAProxy+Keepalived+Sentinel+主从复制(待实践)

首先说明一下,Twemproxy+HAProxy+Keepalived+Sentinel+主从复制-这里提到的技术不一定全部都用上,但是全部用上之后可以达到高可用。 主从复制:实现数据一式多份的保障。 Sentinel哨兵模式...

easonjim ⋅ 2017/10/06 ⋅ 0

HAProxy负载均衡器的安装及配置

软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现。LVS就是基于Linux操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载...

zhangdiandong ⋅ 2014/02/12 ⋅ 0

高性能缓存服务器 nuster v1.7.10.1 发布

高性能缓存服务器 nusterv1.7.10.1 已发布。本次更新主要升级到 HAProxy v1.7.10, 更改了配置文件关键字,删除了 share 关键字, 为升级到HAProxy v1.8 进行了代码重构。这应该是 1.7 版本的最...

nuster ⋅ 04/24 ⋅ 0

HAProxy启动时候常见问题

rabbitmq和haproxy结合时候,遇到了下面问题 某段配置:

HappyBoyLi ⋅ 06/17 ⋅ 0

高性能缓存服务器 nuster v1.8.8.1 支持 HTTP/2,多线程

高性能缓存服务器 nuster v1.8.8.1 已发布。本次更新主要是升级到 HAProxy v1.8.8, 支持 HTTP/2 和多线程。 项目主页 https://github.com/jiangwenyuan/nuster 介绍 nuster 是一个基于 HAPr...

nuster ⋅ 05/08 ⋅ 0

高性能缓存服务器 nuster v1.8.8.2 和 v1.7.11.2 发布

高性能缓存服务器 nuster v1.8.8.2 和 v1.7.11.2 发布。本次更新主要修复了两个比较隐蔽的 bug。 项目主页 https://github.com/jiangwenyuan/nuster Fixed Rare case segfault when compari...

nuster ⋅ 05/29 ⋅ 0

haproxy reload 不生效

haproxy 里weight 权重从100 改成1后, 用/etc/init.d/haproxy reload 不生效,/etc/init.d/haproxy restart 才生效。。 有没有哪位大神遇到过?...

大头加二哥 ⋅ 04/24 ⋅ 0

高性能缓存服务器 nuster v1.8.8.3 和 v1.7.11.3 发布

高性能缓存服务器 nuster v1.8.8.3 和 v1.7.11.3 发布。本次更新主要修复了 一个配置文件解析的bug。 Broken rule key parser in config file (Thanks to Nelson) 介绍 nuster 是一个基于 HA...

nuster ⋅ 06/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

知乎Java数据结构

作者:匿名用户 链接:https://www.zhihu.com/question/35947829/answer/66113038 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 感觉知乎上嘲讽题主简...

颖伙虫 ⋅ 今天 ⋅ 0

Confluence 6 恢复一个站点有关使用站点导出为备份的说明

推荐使用生产备份策略。我们推荐你针对你的生产环境中使用的 Confluence 参考 Production Backup Strategy 页面中的内容进行备份和恢复(这个需要你备份你的数据库和 home 目录)。XML 导出备...

honeymose ⋅ 今天 ⋅ 0

JavaScript零基础入门——(九)JavaScript的函数

JavaScript零基础入门——(九)JavaScript的函数 欢迎回到我们的JavaScript零基础入门,上一节课我们了解了有关JS中数组的相关知识点,不知道大家有没有自己去敲一敲,消化一下?这一节课,...

JandenMa ⋅ 今天 ⋅ 0

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 今天 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部