Sebastiaan, Thanks very much, that helps a lot. It now works. Now that it's working I want to switch it to use ajp instead of http.
I understand from your explanation how ProxyPreserveHost was breaking it. However, when I switch to use ajp, I'm seeing the same behavior. I'm having trouble understanding what tomcat is returning in terms of what I should define as my ProxyPassReverse. Is there an easier way to debug this? Here is how my virtualhost looks now: <VirtualHost *:80> ServerName tiger ServerAdmin [EMAIL PROTECTED] DocumentRoot /opt/www/ ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / ajp://pabst:8009/web/ ProxyPassReverse / ajp://pabst:8009/web/ ProxyPassReverseCookiePath /web / </VirtualHost> I've tried a couple of variations of the ProxyPassReverse ProxyPassReverse / ajp://pabst:8009/web/ ProxyPassReverse / ajp://pabst/web/ ProxyPassReverse / http://pabst:8080/web/ ProxyPassReverse / http://pabst/web/ All have the same effect. Should this work? Jeremy On Fri, Mar 21, 2008 at 3:17 AM, Sebastiaan van Erk <[EMAIL PROTECTED]> wrote: > Looking at your mod_proxy config again I noticed that you are using > ProxyPreserveHost on. I think this is causing the problems, you should > remove this directive. > > What I think is happening is this: > > 1) Wicket says: redirect to /web/xxxx > 2) Tocmat makes the url absolute by prepending the virtual host. Since > you have ProxyPreserveHost on, tomcat sees the virtual host as > "localhost" and NOT "localhost:8080", and returns > http://localhost/web/xxx as the new lcoation. > 3) Apache mod_proxy does NOT reverse proxy the url, because it does not > have the :8080 on it and does not match your rule. > > If you remove the ProxyPreserveHost on, tomcat will return > http://localhost:8080/web/xxxxx as the redirect location and Apache will > reverse proxy it. > > The only downside of this is that your wicket app will not know the REAL > virtual host, and so automatically generated absolute URL's (for example > in emails) will be wrong. > > Regards, > Sebastiaan > > Sebastiaan van Erk wrote: > > Hi, > > > > Jeremy Levy wrote: > >> I have been having trouble with this for a couple of months, it seems > >> that > >> redirects in Wicket 1.3.x seem to be writing out the URL incorrectly > >> in our > >> set up. > >> > >> We are running JBoss 4.2 with embedded Tomcat 5.5 using Apache/2.2.4 > with > >> mod_proxy. > >> > >> The Tomcat URL for the application is http://localhost:8080/web/ > >> > >> The Apache URL for the application is http://localhost > >> > >> For the most part the site works well when accessed via Apache (and > >> perfectly directly via Tomcat), except on links/urls that involve > >> (from what > >> I can tell) a redirect from Wicket. These redirect the users browser > to > >> /web/xxxx which shouldn't happen from infront of the proxy. > > > > From what I can tell your mod_proxy config looks correct, you could > > check the log to see what it's doing. But Wicket redirecting you to > > /web/xxxx is perfectly fine, as far as Wicket is concerned, that's where > > the site is at! It seems that mod_proxy is not properly reverse proxying > > the redirect... > > > > Regards, > > Sebastiaan > > > >> Examples of this are: > >> > >> 1. Form submits (they go through, but the next page is requested with > the > >> /web in the url) > >> 2. Redirects from Application.getHomePage() > >> 3. Any use of RestartResponseAtInterceptPageException > >> 4. setResponsePage(MyPage.class) inside of an > >> Link.onClick(BookmarkablePageLink works fine to the same page) > >> > >> Further evidence that this is a bug is that if I set my application to > >> IRequestCycleSettings.ONE_PASS_RENDER everything works perfectly but > with > >> both IRequestCycleSettings.REDIRECT_TO_BUFFER and > >> IRequestCycleSettings.REDIRECT_TO_RENDER it fails. > >> > >> Our mod_proxy / virtualhost configuration: > >> > >> <VirtualHost *> > >> ServerAdmin [EMAIL PROTECTED] > >> ServerAlias localhost > >> > >> ServerSignature On > >> > >> DocumentRoot "/var/www" > >> > >> ProxyRequests Off > >> > >> <Proxy *> > >> Order deny,allow > >> Allow from all > >> </Proxy> > >> > >> RewriteEngine on > >> > >> RewriteLog "/var/log/apache2/rewrite.log" > >> RewriteLogLevel 2 > >> > >> ProxyPass / http://localhost:8080/web/ > >> ProxyPassReverse / http://localhost:8080/web/ > >> ProxyPassReverseCookiePath /web / > >> ProxyPreserveHost On > >> > >> ErrorLog /var/log/apache2/error.log > >> LogLevel warn > >> </VirtualHost> > >> > >> I'm not 100% sure that the mod_proxy configuration is correct, but > >> I've read > >> all the articles on this list about it as well as the wiki page and > >> have run > >> out of ideas to mess with. > >> > >> Any help is appreciated. > >> > >> Jeremy > >> >