Centos系统下载大全 | Redhat系统下载大全 | Windows2012系统下载大全 | Windows2008系统下载大全| CMS教程 | 网站地图 51运维网-专注Linux/Unix系统安全运维!
当前位置:51运维网 > 微软 > Exchange教程 > 正文

Haproxy实现Exchange全透明代理服务

时间:2014-10-27 20:37 来源:未知 作者:www.51ou.com 阅读:

一:背景

     公司最近exchange邮件系统来构建高可用邮件系统架构。前端负载均衡就是使用了微软的NLB来实现cas的负载均衡。但是方案实施工程中也发现了一些问题,使用NLB在网络中产生大量广播报,出现丢包严重问题。后改用haproxy替代NLB实现cas的负载均衡,但也这就导致了一个问题,最明显的就是用户通过Haproxy来访问邮件系统后 真正达到邮件系统的地址都是Haproxy的地址,在垃圾邮件过滤的时候就无法实现基于IP的过滤,并且也无法记录IP地址信息。为 了解决这个问题我google了很多方案,可以使用硬负载,硬负载可以实现全透明代理让后端邮件服务器获取到用户的真实IP,还有一种解决方案就是 Haproxy的全透明代理。接下来将会介绍下Haproxy的全透明代理的部署。

二:实验拓扑wKioL1RN8OHSVpI-AACrWcQn-14479.jpg

三:方案部署

配置Haproxy

  1. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #!/bin/bash
    wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.25.tar.gz
    tar zxvf haproxy-1.4.25.tar.gz
    cd haproxy-1.4.25
    yum install gcc gcc-c++ autoconf automake -y
    make TARGET=linux2628 arch=x86_64 USE_LINUX_TPROXY=1 #重点USE_LINUX_TPROXY=1用于编译支持TPTOXY
    make install
    mkdir /etc/haproxy
    cp examples/haproxy.cfg /etc/haproxy
    cp examples/haproxy.init /etc/init.d/haproxy
    chmod +x /etc/init.d/haproxy
    cp haproxy /usr/sbin/
  2. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    修改配置文件/etc/haproxy/haproxy.cfg
     
    global
            log 127.0.0.1   local0
            maxconn 409600
            chroot /usr/local/share
         #   uid 501
         #   gid 501
            daemon
            nbproc 1
            pidfile /usr/local/haproxy/logs/haproxy.pid
         #   debug
     
    defaults
            log global
            maxconn 100000
            contimeout 500000
            clitimeout 3600000
            srvtimeout 3600000
            option redispatch
            retries 6
     
    frontend mail.domain.com
            mode http
            bind 0.0.0.0:80
            log global
            option tcplog
    redirect location https://mail.domain.com/owa
     
    frontend owa_443
            mode tcp
            bind 0.0.0.0:443
            default_backend pool_443
            log global
            option tcplog
    backend  pool_443
            balance source
            option redispatch
            option abortonclose
            option persist
            stick on src
            stick-table type ip size 10240k expire 240m
    source 0.0.0.0  usesrc clientip #重点,TPROXY需要加上这行。
            server cas01 10.130.170.130:443 check inter 5000 weight 1 rise 2 fall 3
            server cas02 10.130.170.131:443 check inter 5000 weight 1 rise 2 fall 3
     
    frontend smtp_25
            mode tcp
            bind 0.0.0.0:25
            default_backend pool_smtp
            log global
            option tcplog
    backend pool_smtp
            balance source
            option redispatch
            option abortonclose
            option persist
            stick on src
            stick-table type ip size 10240k expire 240m
    source 0.0.0.0  usesrc clientip #重点,TPROXY需要加上这行。
            server cas01 10.130.170.130:25 check inter 5000 weight 1 rise 2 fall 3
            server cas02 10.130.170.131:25 check inter 5000 weight 1 rise 2 fall 3
     
    frontend pop_995
            mode tcp
            bind 0.0.0.0:995
            default_backend pool_pop
            log global
            option tcplog
    backend pool_pop
            balance source
            option redispatch
            option abortonclose
            option persist
            stick on src
            stick-table type ip size 10240k expire 240m
     
            server cas01 10.130.170.130:995 check inter 5000 weight 1 rise 2 fall 3
            server cas02 10.130.170.131:995 check inter 5000 weight 1 rise 2 fall 3
     
     
    frontend pop_993
            mode tcp
            bind 0.0.0.0:993
            default_backend pool_993
            log global
            option tcplog
    backend pool_993
            balance source
          #  option forwardfor
          #  option originalto
            option redispatch
            option abortonclose
            option persist
            stick on src
            stick-table type ip size 10240k expire 240m
     
            server cas01 10.130.170.130:993 check inter 5000 weight 1 rise 2 fall 3
            server cas02 10.130.170.131:993 check inter 5000 weight 1 rise 2 fall 3
     
    frontend pop_135
            mode tcp
            bind 0.0.0.0:135
            default_backend pool_135
            log global
            option tcplog
    backend pool_135
            balance source
            option redispatch
            option abortonclose
            option persist
            stick on src
            stick-table type ip size 10240k expire 240m
     
            server cas01 10.130.170.130:135 check inter 5000 weight 1 rise 2 fall 3
            server cas02 10.130.170.131:135 check inter 5000 weight 1 rise 2 fall 3
     
    frontend pop_593
            mode tcp
            bind 0.0.0.0:593
            default_backend pool_593
            log global
            option tcplog
    backend pool_593
            balance source
            option redispatch
            option abortonclose
            option persist
            stick on src
            stick-table type ip size 10240k expire 240m
     
            server cas01 10.130.170.130:593 check inter 5000 weight 1 rise 2 fall 3
            server cas02 10.130.170.131:593 check inter 5000 weight 1 rise 2 fall 3
    frontend pop_60001
            mode tcp
            bind 0.0.0.0:60001
            default_backend pool_60001
            log global
            option tcplog
    backend pool_60001
            balance source
            option redispatch
            option abortonclose
            option persist
            stick on src
            stick-table type ip size 10240k expire 240m
      
            server cas02 10.130.170.130:60001 check inter 5000 weight 1 rise 2 fall 3
            server cas02 10.130.170.131:60001 check inter 5000 weight 1 rise 2 fall 3
     
    frontend pop_55000
            mode tcp
            bind 0.0.0.0:55000
            default_backend pool_55000
            log global
            option tcplog
    backend pool_55000
            balance source
            option redispatch
            option abortonclose
            option persist
            stick on src
            stick-table type ip size 10240k expire 240m
            server cas02 10.130.170.130:55000 check inter 5000 weight 1 rise 2 fall 3
            server cas02 10.130.170.131:55000 check inter 5000 weight 1 rise 2 fall 3
     
    frontend vs_stats :8081
            mode http
            log global
            option httplog
            default_backend stats_backend
    backend stats_backend
            mode http
            stats enable
            stats uri /stats
            stats auth admin:admin

    感谢您对【51运维网 http://www.51ou.com/】的支持,我们为您免费提供《Haproxy实现Exchange全透明代理服务》技术文章,《Haproxy实现Exchange全透明代理服务》详细使用和说明,有时《Haproxy实现Exchange全透明代理服务》可能不完善、敬请谅解!如果《Haproxy实现Exchange全透明代理服务》有错误请给我们留言,我们将尽快修复文章错误,如果您觉得本站不错,请分享给周围的朋友!谢谢!

    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    验证码:点击我更换图片