Hi,

On Mon, May 19, 2014 at 11:03 PM, Marco Springer <[email protected]> wrote:

> Hi all,
>
> I'm trying to get something working that should be fairly easy, I think.
>
> I have Nginx sitting in-front of Jetty.
> An incoming URL could be: http://rage.glitchbox.nl/param1
> The proxy should proxy this to: http://localhost:8080/app/param1
> The webapplication is deployed as root application and is the only
> application
>

You say it is deployed as root app and below we see that WicketFilter
listens on /*.
So what is /app in this case ?!


> in that Jetty instance (or Tomcat if that would've been used)
> The wicket mount:
> mountPage("/app/${param}", AppPage.class); (the "param1" is a dynamic
> value)
>
> The actual generated HTML is fine.
> No images are loaded, no JS, nor any wicket resource.
> I've traced this back as to probably being a resource mapping or nginx
> config
> problem, but I'd love some confirmation on this.
> The generated HTML points to the resources as:
> "../../wicket/resource/etc...."
> Due to the proxy setting, nginx sets this to:
> "/app/wicket/resource/etc......".
> Do I need to adjust the nginx configuration to filter on "/wicket/" and
> sent
> those requests through directly? Or do I need to do something about how
> wicket
> generates the paths for it's requests? No sure how to continue here.
>

Requests to /wicket/** should be no different to the other requests.
But if you want to change the values of these special segments then see
Application#newMapperContext. This won't help you much IMO.


>
> Also, some pages need authentication before they can be accessed, I'm using
> the wicket auth-roles package for this. But when that's being used,
> something
> weird is going on..
> If I request a page that needs authentication it does redirect me to the
> proper login page, that's fine (doesn't load the resources, images/css,
> though).
> Upon succesful login the browser is redirected to
> "localhost:8080/app/privilegedpage", instead of
> "http://rage.glitchbox.nl/privilegedpage";. Which I find very strange, is
> this
> also something in nginx that's wrong or wicket behavior?
>

it looks to me like not finished *reverse* proxy config.
Wicket generates only relative urls and will not generate
http://someHost/unless you explicitly ask for a full url.


> This login requirement is enforced through this code, which is in a
> AuthenticatedWebPage implementation:
> @Override
> protected void onConfigure() {
>   AuthenticatedWebApplication app = (AuthenticatedWebApplication)
> Application.get();
>
>   if(!AuthenticatedWebSession.get().isSignedIn()) {
>     app.restartResponseAtSignInPage();
>   }
> }
>
> The SignInPage is the default SignInPage in the authroles package.
>
> I've googled around quite a bit for fellow nginx/wicket users. But to no
> real
> avail of a solution.
> Examples:
>
> http://www.mysticcoders.com/blog/how-to-setup-a-wicket-application-with-nginx-and-jetty/(where
>  I've taken my first attempt from and still seems to give the
> best result)
> I've also taken a look at:
>
> https://cwiki.apache.org/confluence/display/WICKET/Wicket+and+localized+URLs
> &
> http://blog.jteam.nl/2010/02/24/wicket-root-mounts/
> This for making "http://localhost:8080/app/param1"; into
> "http://localhost:8080/param1";, for the dynamic root mounts but seemed
> like a
> lot of hassle for something relatively easy, an http proxy in-front of
> jetty.
>
> If anyone can point me into the right direction, that would be great.
>
> The Nginx reverse proxy mapping:
> location / {
>   proxy_pass              http://localhost:8080/app/;
>   proxy_pass_header       Set-Cookie;
>   proxy_pass_header       X-Forwarded-For;
>   proxy_set_header        X-Real-IP $remote_addr;
>   proxy_pass_header       Host;
> }
>
> Wicket web.xml:
> (only thing noteworthy, as Im not sure this correct?)
> <filter-mapping>
>   <filter-name>applicationname</filter-name>
>   <url-pattern>/*</url-pattern>
>

I think this should be /app/*


> </filter-mapping>
>
> I'm using the WicketFilter, not the WicketServlet approach.
>
> If required, I'll whip up some quickstart tomorrow, not enough time for
> that
> now.
>

If you don't manage to setup it then please create a quickstart together
with nginx conf.


>
> Thanks in advance.
>
> Cheers,
> Marco Springer
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to