httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From André Warnier ...@ice-sa.com>
Subject Re: [users@httpd] Rewrite relative image paths in a reversed proxy setup
Date Mon, 17 Nov 2008 23:36:40 GMT
André Warnier wrote:
> Bocalinda wrote:
>> Yes, that would be /SEDO/index.jsp
> 
> Ok, now a simple test :
> When, instead of requesting
> http://yourserversip/SEDO
> if you request in your browser
> http://yourserversip/SEDO/index.jsp
> then your relative image links are working, right ?
> (provided the images are really there)

Now replying to my own previous post, because I want to go to bed and so 
you would not have to wait for the conclusion :

My reasoning is that the browser does what it does, and what it does is 
right : if it sees the link <img src="image.gif"> in a page that it 
received when it requested
http://server/SEDO
the it will request
http://server/image.gif
for the image.
So far, ok for the browser, but that does not resolve your problem.

To resolve your problem, the browser must known that when it requested
http://server/SEDO
what it really got was
http://server/SEDO/index.jsp
so that it can interpret the link <img src="image.gif"> as the request URL
http://server/SEDO/image.gif

The way to tell the browser that, would be that when it requests
http://server/SEDO
it receives a response from the server saying "no no, that's not there, 
but it's here instead" :
http://server/SEDO/index.jsp
That is called a re-direct, or a 301/302 response.
The browser, when it receives this, will (automatically and 
transparently) request again the resource, but this time as
http://server/SEDO/index.jsp
and following that, it will correctly interpret <img src="image.gif"> as
http://server/SEDO/image.gif
(or http://server/SEDO_NEW/image.gif as the case may be)
which URLs will be proxied to Tomcat and thus properly load-balanced.
CQFD

So now, the trick consists in having your server, upon request of
http://server/SEDO
to send back a re-direct to
http://server/SEDO/index.jsp
and that is probably a matter for mod_rewrite, or maybe just a 
configuration directive in Apache.
(See the Redirect* directives)
Note : in the URL to "redirect to", make sure that you specify it with a 
leading "http://server", because otherwise Apache may get smart and do 
an internal re-direct, which would not be known by your browser, and 
thus defeat the above logic.

Hope this helps, as they say.






> 
> 
> 
>>
>> 2008/11/17 André Warnier <aw@ice-sa.com>
>>
>>> Bocalinda wrote:
>>>
>>>> Hi André.
>>>> I'm glad we managed to understand eachother :)
>>>>
>>>>
>>>>  Sorry, maybe I did not use the correct example before, but that is 
>>>> wrong.
>>>>> If you original request is
>>>>> http://172,18.0.1/SEDO
>>>>> and from there, your browser receives an html page (wherever it came
>>>>> from),
>>>>> and that html page contains a link <img href="image.gif">, then
the
>>>>> browser
>>>>> will request
>>>>> http://172,18.0.1/SEDO/image.gif
>>>>>
>>>>> wait a minute.. maybe it won't. Because it would remove the "SEDO", 
>>>>> for
>>>>> being the last path component, and replace it by "image.gif".
>>>>> Now I think I get it.
>>>>> The browser would have to know that it is not really getting 
>>>>> "SEDO", but
>>>>>  /SEDO/something.
>>>>> Hmmm.
>>>>>
>>>>> I guess that the only way to make this work (if you cannot change the
>>>>> <img>
>>>>> links in the pages), would be to force a re-direct to the real thing,
>>>>> when
>>>>> the browser requests "SEDO".
>>>>>
>>>>>
>>>> That's what I tried before. But the thing is that I don't know where to
>>>> redirect to, because:
>>>>
>>>> a. I don't know whether image.gif belongs to SEDO or SEDO-NEW
>>>> b. I don't want to hardcode a Tomcat URL, because that server could be
>>>> down.
>>>>
>>>>  What is the resource that the browser really obtains when it requests
>>>>> http://172,18.0.1/SEDO ?
>>>>> (this must be something on your Tomcats)
>>>>>
>>>>>
>>>> The resource in the browser remains http://172.18.0.1/SEDO all the 
>>>> time.
>>>> While I see the following in my apache error logs:
>>>>
>>>> No such file or folder /htdocs/image.gif  (More or less, I'm not behind
>>>> that
>>>> computer right now).
>>>>
>>>> I'm puzzled.
>>>> I think it may have to do with ProxyPassReverse not being set properly.
>>>>
>>>>
>>>>  Wait. I repeat :
>>>>> What is the resource that the browser *really* obtains when it 
>>>>> requests
>>>>> http://172.18.0.1/SEDO ?
>>>>> (this must be something on your Tomcats)
>>> Let's forget for the time being about "image.gif".  It is the step 
>>> before
>>> that, which interests me.
>>> When the browser requests "http://172.18.0.1/SEDO", it first gets an 
>>> html
>>> page.  That page is probably defined as being your "Welcome document" 
>>> for
>>> that directory in Tomcat.  What is that document ?
>>> Put another way, which equivalent URL could be used to get the same page
>>> from Tomcat ?
>>> (Maybe "index.jsp" or something ?)
>>>
>>>
>>> ---------------------------------------------------------------------
>>> 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
>>>
>>>
>>
> 
> 
> ---------------------------------------------------------------------
> 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
> 


---------------------------------------------------------------------
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


Mime
View raw message