# squid Proxy liefert nicht alle Seiten korrekt aus

## ZBeeblebrox

Hallo,

ich bin auf ein (meiner Meinung nach) recht kurioses Problem mit unserem squid Proxy unter Gentoo gestoßen. Er liefert eine Seite nicht korrekt aus, statt dessen schneidet er den Inhalt nach den Headerzeilen einfach ab. Mit zig anderen Seiten gibt es keine Probleme, sonst wäre mir das ja schonmal aufgefallen. Vor dem squid (proxy2) auf dem Gentoo-Server steht noch ein anderer squid (proxy1), der die Anfragen an den Gentoo-Server weiterleitet. Aber auch wenn ich den Proxy auf dem Gentoo-System direkt befrage, erhalte ich die unvollständige Antwort zurück. Der andere Proxy liefert sie vollständig aus.

Zur Veranschaulichung:

Am Router, Proxy ein

```
> GET /cgi-bin/lb/nph-omniscgiini?ID=17061978 HTTP/1.0

> Accept: */*

> Accept-Language: de

> UA-CPU: x86

> Accept-Encoding: gzip, deflate

> User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; FDM; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)

> Host: www.tradersguide.de

> X-Forwarded-For: a.b.c.d

> Via: 1.1 proxy1.domain.local:3128 (squid/2.6.STABLE21), 1.0 proxy2.domain.local:3128 (squid/2.7.STABLE3)

> Cache-Control: max-age=259200

> Connection: keep-alive

< HTTP/1.0 200 OK

< Expires: Thu, 01 Jan 1995 01:00:00 GMT

< Pragma: no-cache

< Content-type: text/html

< Content-length: 619

< 

< <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 

< <html>

< <head><META http-equiv="Content-Type" content="text/html; charset=utf-8">

< <title>TradersGuide</title></head>

< <body style="background-color:#FFFFFF;"><script type="text/javascript">

< ounicodeserver="no"

< owidth="1600"

< oheight="1200"

< oserver="122.2.1.76:5111"

< olibrary="TG"

< oclass="rf_LogIn"

< owebserverurl="http://www.tradersguide.de"

< owebserverscript="/cgi-bin/nph-omniscgi"

< odownload="no"

< </script>

< <script type="text/javascript" charset="utf-8" src="http://www.tradersguide.de/omniswebclient.js">

< </script>

< </body></html>
```

Am Client, Proxy ein

```
> GET http://www.tradersguide.de/cgi-bin/lb/nph-omniscgiini?ID=17061978 HTTP/1.0

> Accept: */*

> Accept-Language: de

> UA-CPU: x86

> Proxy-Connection: Keep-Alive

> User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; FDM; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)

> Host: www.tradersguide.de

< HTTP/1.0 200 OK

< Expires: Thu, 01 Jan 1995 01:00:00 GMT

< Pragma: no-cache

< Content-Type: text/html

< Content-Length: 619

< X-Cache: MISS from proxy2.domain.local

< X-Cache-Lookup: MISS from proxy2.domain.local:3128

< Via: 1.0 proxy2.domain.local:3128 (squid/2.7.STABLE3)

< Connection: keep-alive

< Proxy-Connection: keep-alive
```

Später habe ich dann nochmal mit tcpdump am Gentoo System den Traffic WAN-seitig und LAN-seitig mitgeschnitten und kam zum gleichen Ergebnis. Die Seite kommt vollständig am squid an und wird abgeschnitten ausgeliefert.

Im Cache-Log steht folgendes:

```
2008/08/12 10:45:02| httpReadReply: Excess data from "GET http://www.tradersguide.de/cgi-bin/lb/nph-omniscgiini?ID=17061978"
```

Welche Einstellung (bzw. welcher Bug) kann so etwas verursachen?

Nachtrag:

32Bit x86, Gentoo 2008.0, squid 2.7.3

----------

## ZBeeblebrox

Hat niemand eine Idee? Ein kleiner Hinweis würde mir ja schon ausreichen.

Scheinbar gibt es das Problem erst seit dem Update auf squid 2.7.

----------

## think4urs11

Wie sieht denn deine squid.conf aus? (bitte ohne Kommentarzeilen posten)

----------

## ZBeeblebrox

Meine squid.conf:

```
acl all src all

acl manager proto cache_object

acl localhost src 127.0.0.1/32

acl to_localhost dst 127.0.0.0/8

acl localnet src 10.0.0.0/8     # RFC1918 possible internal network

acl localnet src 172.16.0.0/12  # RFC1918 possible internal network

acl localnet src 192.168.0.0/16 # RFC1918 possible internal network

acl SSL_ports port 443

acl Safe_ports port 80          # http

acl Safe_ports port 21          # ftp

acl Safe_ports port 443         # https

acl Safe_ports port 70          # gopher

acl Safe_ports port 210         # wais

acl Safe_ports port 1025-65535  # unregistered ports

acl Safe_ports port 280         # http-mgmt

acl Safe_ports port 488         # gss-http

acl Safe_ports port 591         # filemaker

acl Safe_ports port 777         # multiling http

acl Safe_ports port 901         # SWAT

acl purge method PURGE

acl CONNECT method CONNECT

http_access allow manager localhost

http_access deny manager

http_access allow purge localhost

http_access deny purge

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow localnet

http_access allow localhost

http_access deny all

icp_access allow localnet

icp_access deny all

http_port 3128

hierarchy_stoplist cgi-bin ?

memory_replacement_policy heap GDSF

cache_replacement_policy heap LFUDA

cache_dir aufs /opt/squid 4096 16 256

minimum_object_size 16 KB

maximum_object_size 65535 KB

access_log /var/log/squid/access.log squid

refresh_pattern ^ftp:           1440    20%     10080

refresh_pattern ^gopher:        1440    0%      1440

refresh_pattern -i (/cgi-bin/|\?) 0     0%      0

refresh_pattern .               0       20%     4320

acl apache rep_header Server ^Apache

broken_vary_encoding allow apache

forwarded_for off

coredump_dir /var/cache/squid
```

----------

## ZBeeblebrox

Es ist ein Bug von squid 2.7.#.

Ich habe jetzt die Version 3.0.8 im Einsatz, bei der das Problem nicht auftritt.

----------

