The problem occurs because when the apache proxy recieves an HTTP/1.0
request it sends an HTTP/1.1 request to the upstream server.  The response
then comes back with 'Transfer-encoding: chunked' and until a fix was put
in, the transfer encoding was not changed in sending the HTTP/1.0 response
back, despite it's not being compatible with browsers using HTTP/1.0.

You can get around the problem by forcing apache to use HTTP/1.0, at the
expense of the keep-alive efficiencies you'd get  from HTTP/1.1

To my way of thinking apache's proxying a HTTP/1.0 request by sending an
HTTP/1.1 upstream is just plain incorrect.  It denies the upstream server
the opportunity to correctly select a whole range of headers that have
changed between protocol versions.

Also, what on earth is going on with MSIE 6.0 regressing to using HTTP/1.0
requests?

Andrew McNaughton


On Fri, 24 May 2002, Pedro Melo Cunha wrote:

> Date: Fri, 24 May 2002 01:04:45 +0100
> From: Pedro Melo Cunha <[EMAIL PROTECTED]>
> To: Ian Macdonald <[EMAIL PROTECTED]>
> Cc: Modperl <[EMAIL PROTECTED]>
> Subject: Re: Proxied mod_perl server problem
>
> upgrade to cvs version of apache on the proxy. cvs version solveds this problem.
>
> best regards,
>
> On Mon, May 13, 2002 at 06:57:07PM +1000, Ian Macdonald wrote:
> > Hi All.
> >
> > I'm setting up a new server and wish to run two Apache configurations,
> > one vanilla and one mod_perl. I've configured pretty much according to
> > Stas' excellent guide, using the rewrite module to push the perl
> > requests to the second (ie mod_perl) server.
> >
> > Versions; HP-UX 10.20, Apache 1.3.24, mod_perl 1.26.
> >
> > It's _nearly_ working, but I'm getting one weird piece of behaviour
> > which looks to me like the sort of problem someone with more experience
> > will recognise very swiftly; when I request a perl script via the
> > mod_perl-enabled locations, the content is preceded by a hex number,
> > which corresponds very closely to the size of the content, and then a
> > blank line, as shown below:
> >
> > 4e9
> >
> > PID = 3282
> > DOCUMENT_ROOT="/opt/web_root/html"
> > GATEWAY_INTERFACE="CGI-Perl/1.1"
> > etc.
> >
> > The browser displays the wait cursor for about 15 seconds and then
> > follows the content (which is correct) with another blank line and then
> > a zero:
> >
> > ...
> > SERVER_SOFTWARE="Apache/1.3.24 (Unix) mod_perl/1.26"
> > TZ="EST-10EDT"
> >
> > 0
> >
> > The script works correctly from the command line, or if the mod_perl
> > server port is accessed directly from the browser, or if the mod_perl
> > server is started without proxying enabled.
> >
> > This looks to me as if two parts of the system are contributing the same
> > header information, or if two protocol layers are being added in the
> > wrong order, or something like that.
> >
> > Thanks for any tips.
> > Ian Macdonald
> > [EMAIL PROTECTED]
> >
> > Here's the rewrite config chunk from the main apache:
> >
> >  RewriteEngine      On
> >  RewriteLogLevel    0
> >  RewriteRule ^proxy:.*  -  [F]
> >  RewriteRule ^/perl/(.*)  http://%{HTTP_HOST}:8200/perl/$1 [P,L]
> >  RewriteRule ^/cgi-perl/(.*)  http://%{HTTP_HOST}:8200/cgi-perl/$1 [P,L]
> >
> >  ProxyPassReverse / http://%{HTTP_HOST}/
> >
> > Here's the /perl/ location config from the mod_perl apache
> >
> >     <Location /perl/*.pl>
> >         SetHandler perl-script
> >         PerlHandler Apache::Registry
> >         Options -Indexes ExecCGI
> >         PerlSendHeader On
> >     </Location>
> >
> >
>
> --
> Pedro Melo Cunha - <[EMAIL PROTECTED]>
> Novis Telecom, S.A. - Dir. Rede - ISP <http://www.novis.pt/>
> Edifício Novis - Estrada da Outurela, 118 - 2795-606 Carnaxide
> tel:  +351 21 0104340 - fax: +351 21 0104301
>

Reply via email to