a issue when running the "Simple tests" with a proxy
Alex Rousskov
rousskov at measurement-factory.com
Mon Mar 10 16:05:54 UTC 2014
On 03/10/2014 02:02 AM, xu tony wrote:
> I've been using the "Simple tests" introdued by polygraph's User
> manual to test my squid server. During testing, I found my squid can't
> pull the resource from orign(that is polygraph-server) successfully.
> 3、The command i used for starting polygraph-server and polygraph-client
> is ,
> /usr/local/polygraph/bin/polygraph-client --config
> ../workdir/my_simple.pg --verb_lvl 10 --proxy
> 218.202.111.5:8101
> During test, i found squid have got requests from
> ploygraph-client,but using a wrong url to pull resource (that is
> polygraph-server).Part of my squid access log is showed as below:
> --------------------------------------------------------------------------------------------------------------
> 218.202.111.138 - - [10/Mar/2014:15:58:49 +0800] "GET
> http://w1cbc2601.7f1c694f:8/t03/_00000003 HTTP/1.1" 503 1513 "-" "-"
> TCP_MISS DIRECT 0 -
The wrong domain name in the above log implies that your Squid is
confused as to where the requests are going. This would not happen with
a regular Squid configuration. Starting with a simple forward proxy
configuration for Squid may be a good idea before moving on to more
complex stuff (squid.conf.default may work after adding http_access
rules to allow Polygraph traffic).
> I snapped http-request packets from polygraph-client, and found
> request-line of http-request is not what squid expected,which caused the
> squid can't pull resource from polyserver.The request-line in
> http-request sent by polyclient is like that :
> "GET http://218.202.111.138/w1cbc0feb.0fea1bae:00000008/t03/_00000001
> HTTP/1.1"
Yes, this is what you told Polygraph to send. In a forward proxy test
that you are running (from Polygraph point of view), the URL should look
like the one logged above.
> The right request-line which the squid expected ,i think, shoud be like:
> "GET /218.202.111.138/w1cbc02ee.0c726ba0:00000008/t03/_00000015 HTTP/1.0"
No, but if you are testing a reverse proxy, the Request URI that Squid
expects should look like this:
GET /w1cbc02ee.0c726ba0:00000008/t03/_00000015 HTTP/...
It would still be logged as a full URL (with a host name) by Squid IIRC,
but the packet capture should show from-Polygraph Request URIs without
the protocol scheme and host name components.
Please note that some packet capture GUIs such as Wireshark sometimes
"restore" the full URL when rendering high-level details of the captured
packet, even when a full URL is not present in the packet. Make sure you
look at what has been actually sent and what what was rendered by GUI.
> So, i want to know which part is wrong in my test, if i have made
> some mistakes in test, or polyclient sent http-request with wrong
> request-line, or my squid had some problems ,or anything else? How can i
> fix it?
You have configured Polygraph for a forward proxy test (the --proxy
option does that). One possibility is that you have also configured your
Squid to be a reverse proxy. If the two configurations are out of sync,
bad things like the one you have described may happen.
If you want to test a reverse proxy, you have to change Polygraph
configuration. Do not use --proxy at all (reverse proxies are origin
servers from the HTTP protocol point of view). Add a PGL AddrMap that
maps proxy address (218.202.111.5:8101) to the Polygraph server address
(S.addresses). And use map.names for Robot's origins field (R.origins)
instead of S.addresses you are using there now. The WebAxe workload
configuration distributed with Polygraph has a [more complex] example on
how to do that.
If you do not want to test a reverse proxy, reconfigure your Squid to be
a regular forward proxy (starting with squid.conf.default may be a good
idea).
HTH,
Alex.
More information about the Users
mailing list