设为首页收藏本站

LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区!

 找回密码
 注册

QQ登录

只需一步,快速开始

#公告#抱歉,网站将关闭,不再开放。由于PC时代已远逝 。在这个后移动互联网时代,我们继续携手前行,保持对技术的热情。共同构建linuxtone知识星球欢迎加入,一起讨论技术、招聘人才、分享资源。请新老linuxtone人 扫码移步到 知识星球:linuxtone

学习是一种信仰!分享是一种快乐!能力= 心态 * 沟通 * 知识 (你的每一天需要正能量!)

 网站的发展需要你贡献一份力量!希望你能每天坚持看贴1小时,并回答网友的问题!祝你在浏览论坛的过程中取得进步!谢谢!linuxtone加油!大家加油! 友情提示: 你今天学习了吗?你今天进步了吗?少一点抱怨!多一点进步!Life is short ! Why not linuxtone ?  

网站的发展、感谢每位坛友的努力!

查看: 18852|回复: 5

[haproxy] haproxy1.4.22请求头http1.1响应头http1.0 [复制链接]

Rank: 8Rank: 8

签到
620
注册时间
2009-2-20
最后登录
2016-4-14
在线时间
344 小时
阅读权限
90
积分
63510
帖子
107
主题
16
精华
0
UID
1528
发表于 2012-10-19 11:55:43 |显示全部楼层
本帖最后由 stormcc 于 2012-10-19 22:29 编辑

近来折腾haproxy,测试中发现我使用IE和curl发送请求头中为http1.1,但是haproxy的响应头是http1.0。
后来尝试1.4.22,1.4.21,1.4.19都相同效果。
不知道大家有没有遇到过这状况,怎么解决的。
如下:
# curl http://10.10.77.67/car/120/32/65/Img1646532_120.jpg -H host:m2.auto.it.cn  -o /dev/null -v
* About to connect() to 10.10.77.67 port 80 (#0)
*   Trying 10.10.77.67... connected
* Connected to 10.10.77.67 (10.10.77.67) port 80 (#0)
> GET /car/120/32/65/Img1646532_120.jpg HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2
> Accept: */*
> host:m2.auto.it.cn
>
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Server: nginx/0.8.55
< Date: Thu, 18 Oct 2012 09:04:20 GMT
< Content-Type: image/jpeg
< Content-Length: 4634
< Last-Modified: Wed, 25 Jul 2012 02:35:21 GMT
< Expires: Sun, 16 Oct 2022 09:04:20 GMT
< Cache-Control: max-age=315360000
< Accept-Ranges: bytes
< Age: 67409
< X-Cache: HIT from 106_213.auto.it.cn
< Via: 1.1 106_213.auto.it.cn:81 (squid/2.7.STABLE9)
< Connection: close
<
{ [data not shown]
100  4634  100  4634    0     0  1216k      0 --:--:-- --:--:-- --:--:-- 4525k* Closing connection #0

Rank: 8Rank: 8

注册时间
2009-11-17
最后登录
2015-9-26
在线时间
361 小时
阅读权限
90
积分
56805
帖子
518
主题
25
精华
1
UID
6686
发表于 2012-10-19 15:24:22 |显示全部楼层
你是不是加了 option httpclose或者option forceclose参数了

使用道具 举报

Rank: 8Rank: 8

注册时间
2009-2-20
最后登录
2016-4-14
在线时间
344 小时
阅读权限
90
积分
63510
帖子
107
主题
16
精华
0
UID
1528
发表于 2012-10-19 20:56:51 |显示全部楼层
huangxiaolu 发表于 2012-10-19 15:24
你是不是加了 option httpclose或者option forceclose参数了

没有配置,详细配置文件如下:
# grep -v ^'#' haproxy.cfg                  
global
    log    127.0.0.1 local3 info
    maxconn     8000
    ulimit-n 16014
    user  haproxy
    group haproxy
    chroot    /opt/haproxy1.4.22/
    pidfile /opt/haproxy1.4.22/logs/haproxy.pid
    nbproc 1   
    daemon

defaults
    mode http
    log global
    option httplog
    timeout connect 10s
    timeout client  10s
    timeout server  10s
    timeout check   2s

listen .auto.it.cn
    bind *:80
    log global
    option httplog
    monitor-net 192.168.106.0/24
    monitor-uri /haproxy.test
    balance   uri
    log    127.0.0.1 local0 debug
    hash-type consistent  
    server cache2 192.168.106.109:81 check inter 1500 rise 3 fall 3 weight 12
    server cache3 192.168.106.213:81 check inter 1500 rise 3 fall 3 weight 12
    http-check send-state
    fullconn 6000
    retries    3
    option redispatch
    option httpchk GET /flag.txt  HTTP/1.0\nHost:\ m1.auto.it.cn
    http-check expect status 200

listen haproxystat
    bind  *:6501
    stats enable
    stats uri   /haproxy-stats  
    stats realm Haproxy/Statistics
    stats auth  admin:admin
    stats hide-version

使用道具 举报

Rank: 8Rank: 8

注册时间
2009-2-20
最后登录
2016-4-14
在线时间
344 小时
阅读权限
90
积分
63510
帖子
107
主题
16
精华
0
UID
1528
发表于 2012-10-19 22:28:54 |显示全部楼层
本帖最后由 stormcc 于 2012-10-19 22:29 编辑

在listen配置块添加:no option httpclose指令仍然不行。
[@zw_79_74 ~]# curl http://192.168.106.109/car/120/32/65/Img1646532_120.jpg   -o /dev/null -v  -H host:m1.auto.it.cn
* About to connect() to 192.168.106.109 port 80
*   Trying 192.168.106.109... connected
* Connected to 192.168.106.109 (192.168.106.109) port 80
> GET /car/120/32/65/Img1646532_120.jpg HTTP/1.1
> User-Agent: curl/7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
> Accept: */*
> host:m1.auto.it.cn
>
< HTTP/1.0 200 OK
< Server: nginx/0.8.55
< Date: Wed, 17 Oct 2012 08:08:41 GMT
< Content-Type: image/jpeg
< Content-Length: 4634
< Last-Modified: Wed, 25 Jul 2012 02:35:21 GMT
< Expires: Sat, 15 Oct 2022 08:08:41 GMT
< Cache-Control: max-age=315360000
< Accept-Ranges: bytes
< Age: 195486
< X-Cache: HIT from 106_213.auto.it.cn
< Via: 1.1 106_213.auto.it.cn:81 (squid/2.7.STABLE9)
< Connection: close
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  4634  100  4634    0     0   547k      0 --:--:-- --:--:-- --:--:--     0Closing connection #0

[@zw_79_74 ~]#

使用道具 举报

Rank: 8Rank: 8

注册时间
2009-2-20
最后登录
2016-4-14
在线时间
344 小时
阅读权限
90
积分
63510
帖子
107
主题
16
精华
0
UID
1528
发表于 2012-10-21 08:39:56 |显示全部楼层
向各位大侠求助,自己顶一下

使用道具 举报

Rank: 8Rank: 8

注册时间
2009-2-20
最后登录
2016-4-14
在线时间
344 小时
阅读权限
90
积分
63510
帖子
107
主题
16
精华
0
UID
1528
发表于 2012-10-24 16:21:40 |显示全部楼层
----刚刚找到问题原因了

我的haproxy后端是squid,抓包发现squid请求其后端的nginx源服务器是http1.0的头,从而其后端返回给squid的响应头也是http1.0。squid将该http1.0的响应返回给了haproxy,haproxy将响应头为http1.0的结果响应给客户端。

将squid去掉,haproxy后端直连nginx后,haproxy发送给nginx http1.1的头,同时接收到nginx1.1的响应头,然后将http1.1的响应返回给客户端。。

是测试中使用的squid没支持http1.1导致的。

使用道具 举报

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

IT运维专家网感谢您的支持

合作联系: QQ:67888954/MSN:cnseek@msn.com/mail:netseek@linuxtone.org

Archiver|手机版|感谢所有关心和支持过LinuxTone的朋友们 转载本站内容请注明原作者名及出处 ( 京ICP备08103151 )   |

GMT+8, 2019-10-18 07:21 , Processed in 0.022585 second(s), 14 queries , Apc On.

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部