忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 视频 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
123下一页
最近访问板块 发新帖
查看: 3112 | 回复: 24

haproxy配置求助 [复制链接]

论坛徽章:
0
发表于 2016-11-27 18:38 |显示全部楼层
本帖最后由 shouyu924 于 2016-11-28 15:33 编辑

当前网站http转https(部分)定义了80与443监听,需要http与https共存

acl http_w hdr_reg(host) -i   ^www.abc.com
acl http_m hdr_reg(host) -i   ^m.abc.com
use_backend w if http_w
use_backend  m if http_m
backend w
10.10.10.1
10.10.10.2
backend m
10.10.10.1
10.10.10.2


acl http_ws hdr_reg(host) -i   ^www.abc.com
acl http_ms  hdr_reg(host) -i  ^m.abc.com
use_backend ws if http_ws
use_backend  ms if http_ms
backend ws
10.10.10.1
10.10.10.2
backend ms
10.10.10.1
10.10.10.2

为什么这样写不行的啊,请大神帮忙啊




论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2016-11-28 12:56 |显示全部楼层
回复 1# shouyu924

出现什么问题了? 感觉这俩配置只是 acl 和 backend 的命令不一样。

论坛徽章:
0
发表于 2016-11-28 14:45 |显示全部楼层
回复 2# Godbach
是的.我希望浏览器访问进来,如果用http访问,返回80后台给前端请求,如果https访问,返回443后台给前端请求

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2016-11-28 15:13 |显示全部楼层
回复 3# shouyu924

你这个地方是要 匹配 host 吧。建议你用 hdr() 关键字来比较:

acl host1 hdr(host) -i www.abc.com
acl host2 hdr(host) -i m.abc.com

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2016-11-28 15:22 |显示全部楼层
回复 1# shouyu924

ACL 的语法如下:
acl <aclname> <criterion> [flags] [operator] <value> ...

你确定你那么写 ACL,HAProxy 可以正常解析吗?


论坛徽章:
0
发表于 2016-11-28 15:31 |显示全部楼层
本帖最后由 shouyu924 于 2016-11-28 15:33 编辑

我是按照产线的配置写的,产线的是这么用的
acl url_m   hdr_reg(host) -i    ^m.abc.com

论坛徽章:
0
发表于 2016-11-28 15:37 |显示全部楼层
回复 5# Godbach

主题写少写了hdr_reg(host) -i   ..,我现在卡在同一个域名两种方式,http,https.如何写正则,如果用hdr_reg(host) -i  ^ 形式,这样请求只会在最开始定义的80端口即便我用https

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2016-11-28 15:49 |显示全部楼层
回复 7# shouyu924

host 匹配不建议用正则,直接精确匹配吧。
此外,没看到你的配置中所谓的 80 443 共存的逻辑。你能贴一下你实际的配置吗

论坛徽章:
0
发表于 2016-11-28 16:14 |显示全部楼层
回复 8# Godbach


global

    log         127.0.0.1 local3
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     8000
    user        haproxy
    group       haproxy
    daemon
    #debug
    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats level admin


defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option                     http-server-close
    option forwardfor       except 127.0.0.0/8
    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           1m
    maxconn                 8000

#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend  main *:80
--------------------------------------------


acl url_www hdr_reg(host) -i    ^www.liness.com
acl url_hatlineapi hdr_reg(host) -i  ^hat.api.liness.cn


use_backend               backendall if url_www
use_backend               backendall if url_hatlineapi


backend backendall
    mode        http
    balance     roundrobin

    option      forwardfor
    server      10.28.27.92:80 cookie  weight 1   check
    server      10.21.41.229:80 cookie  weight 1  check



下面是我新添加的配置

frontend www-https
bind *:443
mode tcp


acl url_wwws hdr(host) -i    www.liness.com
acl url_hatlineapis hdr(host) -i  hat.api.liness.cn



use_backend               backendalls if url_wwws
use_backend               backendalls if url_hatlineapis

backend backendalls
    server      10.28.27.92:443 cookie  weight 1   check
    server      10.21.41.229:443 cookie  weight 1  check

论坛徽章:
0
发表于 2016-11-28 16:15 |显示全部楼层
回复 8# Godbach


global

    log         127.0.0.1 local3
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     8000
    user        haproxy
    group       haproxy
    daemon
    #debug
    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats level admin


defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option                     http-server-close
    option forwardfor       except 127.0.0.0/8
    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           1m
    maxconn                 8000

#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend  main *:80
--------------------------------------------


acl url_www hdr_reg(host) -i    ^www.liness.com
acl url_hatlineapi hdr_reg(host) -i  ^hat.api.liness.cn


use_backend               backendall if url_www
use_backend               backendall if url_hatlineapi


backend backendall
    mode        http
    balance     roundrobin
    #balance    source
    #balance    static-rr
    #cookie      SERVERID insert
    #option      httpclose
    option      forwardfor
    server      10.28.27.92:80 cookie  weight 1   check
    server      10.21.41.229:80 cookie  weight 1  check


------------------------------------
以下是我的配置.
frontend www-https
bind *:443
mode tcp


acl url_wwws hdr(host) -i    www.liness.com
acl url_hatlineapis hdr(host) -i  hat.api.liness.cn



use_backend               backendalls if url_wwws
use_backend               backendalls if url_hatlineapis

backend backendalls
    server      10.28.27.92:443 cookie  weight 1   check
    server      10.21.41.229:443 cookie  weight 1  check

您需要登录后才可以回帖 登录 | 注册

本版积分规则

SACC2017购票6.8折优惠进行时

2017中国系统架构师大会(SACC2017)将于10月19-21日在北京新云南皇冠假日酒店震撼来袭。今年,大会以“云智未来”为主题,云集国内外顶级专家,围绕云计算、人工智能、大数据、移动互联网、产业应用等热点领域展开技术探讨与交流。本届大会共设置2大主会场,18个技术专场;邀请来自互联网、金融、制造业、电商等多个领域,100余位技术专家及行业领袖来分享他们的经验;并将吸引4000+人次的系统运维、架构师及IT决策人士参会,为他们提供最具价值的交流平台。
----------------------------------------
优惠时间:2017年8月2日前

活动链接>>
  

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP