Search squid archive

Re: Squid-2.7STABLE7: problem with Vary

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2010-03-20 02:29, Amos Jeffries wrote:
Krzysztof Olędzki wrote:
Hello,
Hello,

I'm have been trying to configure Squid to store and provide two
versions of the same obiect, but so far with no luck.

I configured my load balancer to append an additional header to
a request depending on a client status, something like:
  "X-ASP-CFlag: Yes" or "X-ASP-CFlag: No"

I also configured my servers to append "Vary: X-ASP-CFlag" and to
set a different ETag for both responses.

Squid is able to cache such responses and always provide a correct
version, so I believe I did everyting correct releated to handling
Vary&  ETag.

My problem is that each time, when a different type of client comes,
the object is RELEASED and Squid fetches a new one. So, Squid
is able to provide a cached version of such obiect as long as
consecutive requests come from the same type of a client. If they comes
from the different type, then I get 0% hit rate. :(

Is Vary always set regardless of X-ASP-CFlag presence?

Yes, Vary should be always set and the same goes for X-ASP-CFlag.

missing X-ASP-CFlag is considered to be one of the three variant cases
by Squid (missing, "Yes", "No").

It is not possible for X-ASP-CFlag to be empty.

Is the ETag the same for both variants?

No.

What does Cache-Control: header contain for each/both?

Don't know. I'll check this. Does it make any different if they are distinct?

  1269025015.033     23 192.168.162.1/192.168.152.2 TCP_MISS/200 16857 GET http://www.example.com/xml/EF.001.xml - FIRST_UP_PARENT/192.168.162.1 text/xml
  1269025022.400     27 192.168.162.1/192.168.152.2 TCP_MEM_HIT/200 16886 GET http://www.example.com/xml/EF.001.xml - NONE/- text/xml
  1269025022.863     81 192.168.162.1/192.168.152.2 TCP_MEM_HIT/200 16886 GET http://www.example.com/xml/EF.001.xml - NONE/- text/xml
  1269025022.967     25 192.168.162.1/192.168.152.2 TCP_MEM_HIT/200 16886 GET http://www.example.com/xml/EF.001.xml - NONE/- text/xml
  1269025023.456      1 192.168.162.1/192.168.152.2 TCP_MEM_HIT/200 16886 GET http://www.example.com/xml/EF.001.xml - NONE/- text/xml
  1269025024.015     21 192.168.162.1/192.168.152.2 TCP_MEM_HIT/200 16886 GET http://www.example.com/xml/EF.001.xml - NONE/- text/xml
  1269025024.101     16 192.168.162.1/192.168.152.2 TCP_MEM_HIT/200 16887 GET http://www.example.com/xml/EF.001.xml - NONE/- text/xml
  1269025025.836      1 192.168.162.1/192.168.152.2 TCP_MEM_HIT/200 16887 GET http://www.example.com/xml/EF.001.xml - NONE/- text/xml
  1269025028.506     27 192.168.162.1/192.168.152.2 TCP_MISS/200 100934 GET http://www.example.com/xml/EF.001.xml - FIRST_UP_PARENT/192.168.162.1 text/xml

... client B first request.

  1269025031.030     37 192.168.162.1/192.168.152.2 TCP_MISS/200 16904 GET http://www.example.com/xml/EF.001.xml - FIRST_UP_PARENT/192.168.162.1 text/xml
  1269025033.208     11 192.168.162.1/192.168.152.2 TCP_MISS/200 100934 GET http://www.example.com/xml/EF.001.xml - FIRST_UP_PARENT/192.168.162.1 text/xml

... client B second request.

Notice how the object size keeps changing with each TCP_MISS. Might be
related.

The size is different because the object is different. :)

According to the store.log I have:

- request from a client type "A":
1269025015.023 RELEASE 00 00032DDE 3670265D41E40D46FB58467B0A406016  200 1269025002 1268659805 1269025062 text/css -1/16369 GET http://www.example.com/css/EF.001.css
1269025015.023 SWAPOUT 00 000332CA 26DF93F5ACF8EFF960D1ABD01F1D9509  200 1269025015        -1 1269125015 x-squid-internal/vary -1/220 GET http://www.example.com/css/EF.001.css
1269025015.023 RELEASE 00 00032F03 BA73564A12C40FB51174FE3CD14F2BDA  200 1269025005        -1 1269125005 x-squid-internal/vary -1/220 GET http://www.example.com/css/EF.001.css
1269025015.033 SWAPOUT 00 000332CC E3A743051428428E9D4D45836CB2719C  200 1269025014 1268659805 1269025074 text/css -1/16338 GET http://www.example.com/css/EF.001.css

- request from a client type "B":
1269025028.491 RELEASE 00 00032F04 F7F9BF630687B86AFAA4D5CD729E6F15  200 1269025005 1268659805        -1 text/xml 100483/100483 GET http://www.example.com/xml/EF.001.xml
1269025028.491 SWAPOUT 00 00033BEA 26DF93F5ACF8EFF960D1ABD01F1D9509  200 1269025028        -1 1269125028 x-squid-internal/vary -1/220 GET http://www.example.com/xml/EF.001.xml
1269025028.491 RELEASE 00 000332CA 80E0AD812ADE72183FD2BF19D3D1F251  200 1269025015        -1 1269125015 x-squid-internal/vary -1/-218 GET http://www.example.com/xml/EF.001.xml
1269025028.506 SWAPOUT 00 00033BF0 A070DC36FD8ED3452573EE7DC398DF53  200 1269025028 1268659805 1269025088 text/xml 100483/100483 GET http://www.example.com/xml/EF.001.xml

- request from a client type "A":
1269025031.015 RELEASE 00 000332CC BCB90FADA1A3A323B25925C4776B64AB  200 1269025014 1268659805 1269025074 text/xml -1/16338 GET http://www.example.com/xml/EF.001.xml
1269025031.015 SWAPOUT 00 00033D2D 26DF93F5ACF8EFF960D1ABD01F1D9509  200 1269025031        -1 1269125031 x-squid-internal/vary -1/220 GET http://www.example.com/xml/EF.001.xml
1269025031.015 RELEASE 00 00033BEA C4D3004363864A9BC877E75165903539  200 1269025028        -1 1269125028 x-squid-internal/vary -1/220 GET http://www.example.com/xml/EF.001.xml
1269025031.028 SWAPOUT 00 00033D2A E3A743051428428E9D4D45836CB2719C  200 1269025030 1268659805 1269025090 text/xml -1/16385 GET http://www.example.com/xml/EF.001.xml

- request from a client type "B":
1269025033.204 RELEASE 00 00033BF0 4A2CE9062319A7E381086826978BCBB3  200 1269025028 1268659805 1269025088 text/xml 100483/100483 GET http://www.example.com/xml/EF.001.xml
1269025033.204 SWAPOUT 00 00033EE7 26DF93F5ACF8EFF960D1ABD01F1D9509  200 1269025033        -1 1269125033 x-squid-internal/vary -1/220 GET http://www.example.com/xml/EF.001.xml
1269025033.204 RELEASE 00 00033D2D C5D2959AD4FB3A19CB4333A21A85A3F9  200 1269025031        -1 1269125031 x-squid-internal/vary -1/-218 GET http://www.example.com/xml/EF.001.xml
1269025033.208 SWAPOUT 00 00033EE8 A070DC36FD8ED3452573EE7DC398DF53  200 1269025032 1268659805 1269025092 text/xml 100483/100483 GET http://www.example.com/xml/EF.001.xml

And so on...

So, the question is: how to teach squid to do it in the right way?

Client A and B are requesting different objects one is a CSS one an XML
file.

There is no sign in access.log of those client A requests.

My bad, please s/css/xml/g. I made a mistake in masking real addresses in the above example, but each time it was exactly the same url.

Best regards,

			Krzysztof Olędzki

[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux