You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by tu enping <tu...@hotmail.com> on 2007/04/05 21:40:35 UTC

[users@httpd] apache reverse proxy refused to transfer gzip-compressed soap

Hi all,I am trying to setup a reverse proxy to transfer data based on soap. Let's say we have three machines:a --- clientb --- reverse proxy server with apache 2.2.0 installedc --- data provider using mod_gsoap.dll, provide a soap envelope with data inside.In b, I only made following change to http.conf:Enable following lines ---LoadModule headers_module modules/mod_headers.soLoadModule deflate_module modules/mod_deflate.soLoadModule proxy_module modules/mod_proxy.soLoadModule proxy_http_module modules/mod_proxy_http.soLoadModule proxy_ftp_module modules/mod_proxy_ftp.soLoadModule proxy_connect_module modules/mod_proxy_connect.soAdd following lines in the end ---   ProxyRequests Off   <Proxy *>      Order deny,allow      Allow from all   </Proxy>ProxyPass /RPTest/ http://192.168.2.100/gsoap/I have three scenarios:Scenario 1 --- c provides uncompressed dataScenario 2 --- c provides gzip-compressed chunk dataScenario 3 --- c provides gzip-compressed unchunk dataIn
both scenario 1 and 2, client can receive data well. However, in
scenario 3, client can not receive data. Therefore, I tried to compare
scenario 2 and 3 on soap envelope sent by c and soap envelope received
by a. For data sent by c, scenario 2 has a hex number right before the
compressed binary block, while scenario 3 does not have. Seems this hex
number is length of binary block. For data recieved by a, in scenario
3, a received compressed data with content-length 0.I wonder if
apache http server in b tries to interpret soap content and get no
content-length, then apache puts some content-length=0 to repsonse
header. In fact, I only need b works as a bridge, simply transfering
whatever from c to a without any modification. Is my problem
caused by apache modifying content-length in response header? Is there
any way to make apache only pass through data from c just as is? Thanks,Enping
_________________________________________________________________
Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy!
http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=en-us

Re: [users@httpd] apache reverse proxy refused to transfer gzip-compressed soap

Posted by Joshua Slive <jo...@slive.ca>.
On 4/5/07, tu enping <tu...@hotmail.com> wrote:

> Scenario 1 --- c provides uncompressed data
> Scenario 2 --- c provides gzip-compressed chunk data
> Scenario 3 --- c provides gzip-compressed unchunk data
>
> In both scenario 1 and 2, client can receive data well. However, in scenario
> 3, client can not receive data. Therefore, I tried to compare scenario 2 and
> 3 on soap envelope sent by c and soap envelope received by a. For data sent
> by c, scenario 2 has a hex number right before the compressed binary block,
> while scenario 3 does not have. Seems this hex number is length of binary
> block. For data recieved by a, in scenario 3, a received compressed data
> with content-length 0.
>
> I wonder if apache http server in b tries to interpret soap content and get
> no content-length, then apache puts some content-length=0 to repsonse
> header. In fact, I only need b works as a bridge, simply transfering
> whatever from c to a without any modification.
>
> Is my problem caused by apache modifying content-length in response header?
> Is there any way to make apache only pass through data from c just as is?

In general, an apache operating in proxy mode will not care at all
about what is in the data, so I think you are looking in the wrong
place for your problem.

The problem is the Content-Length header being set to zero. Have you
checked the content-length header on the response from the origin to
the proxy (c to b in your notation)? What does it contain?

Joshua.

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org