A question : does Nginx send X-Forwarded-* headers ? Which ones? On Oct 5, 2016 7:16 PM, "Tom Götz" <[email protected]> wrote:
> … so what I was trying to say (I’m not yet too deep into the websockets > tech): > > isn’t it —in the described case— also necessary to configure the mount > point of the WS endpoint? > > Tom > > > > > On 05.10.2016, at 17:42, Tom Götz <[email protected]> wrote: > > > > BTW, I already tried the following workaround without success: > > > > I did override WebSocketBehavior#renderHead and included a „patched“ JS > init script that contained the contextPath that ngnix is forwarding to, so > the generated JS looked like this: > > > > if (typeof(Wicket.WebSocket.appName) === "undefined") { > > jQuery.extend(Wicket.WebSocket, { pageId: 1, resourceName: '', > > baseUrl: ‚MyHomePage?1', contextPath: ‚/MyLocation', appName: ‚myApp', > > filterPrefix: '' }); > > Wicket.WebSocket.createDefaultConnection(); > > } > > > > But still I got an 404 for the ws endpoint … > > > > Tom > > > > > >> On 05.10.2016, at 17:35, Tom Götz <[email protected]> wrote: > >> > >> I created a JIRA for this: https://issues.apache.org/ > jira/browse/WICKET-6254 > >> > >> Tom > >> > >> > >>> On 05.10.2016, at 17:31, Martin Grigorov <[email protected]> wrote: > >>> > >>> The problem is that Nginx is configured to forward requests to > /MyLocation > >>> to Tomcat, and the application has no idea about this. > >>> > >>> Martin Grigorov > >>> Wicket Training and Consulting > >>> https://twitter.com/mtgrigorov > >>> > >>> On Wed, Oct 5, 2016 at 5:25 PM, Tom Götz <[email protected]> wrote: > >>> > >>>> Hi Martin, > >>>> > >>>> what exactly is the problem in wicket-websocket-jquery.js? As I said, > I > >>>> have no contextPath, so I wouldn’t expect Wicket/wicket-websocket- > jquery.js > >>>> to know under which context the app is running. Shouldn’t I provide > the > >>>> context/mountPath somehow to the websocket initialization process?! > >>>> > >>>> Tom > >>>> > >>>>> On 05.10.2016, at 16:47, Martin Grigorov <[email protected]> > wrote: > >>>>> > >>>>> Hi Tom, > >>>>> > >>>>> The problem really is in wicket-websocket-jquery.js. > >>>>> It does: url = protocol + '//' + document.location.host + > >>>> WWS.contextPath + > >>>>> WWS.filterPrefix + '/wicket/websocket'; > >>>>> > >>>>> A workaround for you is to add url rewrite rule to Nginx to forward > it to > >>>>> Tomcat. > >>>>> > >>>>> Please file an issue at JIRA and I'll see how this could be improved. > >>>>> > >>>>> > >>>>> Martin Grigorov > >>>>> Wicket Training and Consulting > >>>>> https://twitter.com/mtgrigorov > >>>>> > >>>>> On Wed, Oct 5, 2016 at 4:31 PM, Tom Götz <[email protected]> wrote: > >>>>> > >>>>>> Hm, no solution yet … anyone got a working example or some hint > maybe? > >>>>>> > >>>>>> Tom > >>>>>> > >>>>>> > >>>>>>> On 05.10.2016, at 15:57, Tom Götz <[email protected]> wrote: > >>>>>>> > >>>>>>> Maybe answering my own question, but this here could help … I’ll > give > >>>> it > >>>>>> a try: > >>>>>>> http://stackoverflow.com/questions/32287103/how-to-use- > >>>>>> nginx-as-a-proxy-for-wicket-application-using-websockets > >>>>>>> > >>>>>>> Cheers, > >>>>>>> Tom > >>>>>>> > >>>>>>> > >>>>>>>> On 05.10.2016, at 15:36, Tom Götz <[email protected]> wrote: > >>>>>>>> > >>>>>>>> Hi there, > >>>>>>>> > >>>>>>>> I have the following scenario: > >>>>>>>> > >>>>>>>> 1. > >>>>>>>> a Spring-Boot Wicket application with Tomcat running on Port 8080 > that > >>>>>> uses Wicket WebSockets impl running in the servlet root context > >>>>>>>> > >>>>>>>> 2. > >>>>>>>> a ngnix server that proxies /MyLocation to the mentioned Wicket > app > >>>>>>>> > >>>>>>>> As there is no servlet context involved, the generated WebSockets > >>>>>> endpoint url is generated by Wicket as: ws://mydomain.com/wicket/ > >>>>>> websocket?pageId=1&wicket-ajax-baseurl=... > >>>>>>>> > >>>>>>>> I saw that this url is generated in BaseWebSocketBehavior# > renderHead > >>>>>> by asking the request for the context path: > >>>>>>>> > >>>>>>>> String contextPath = component.getRequest().getContextPath(); > >>>>>>>> variables.put("contextPath", contextPath); > >>>>>>>> > >>>>>>>> As I don’t have a contextPath, this fails: > >>>>>>>> > >>>>>>>> WebSocket connection to 'ws://mydomaon.com/wicket/ > >>>>>> websocket?pageId=1&wicket-ajax-baseurl=...' failed: Error during > >>>>>> WebSocket handshake: Unexpected response code: 404 > >>>>>>>> > >>>>>>>> Does the Wicket WebSocket API provide a way to handle such a > scenario? > >>>>>> Currently, I’m studying the code but any pointer would be helpful … > >>>>>>>> > >>>>>>>> Cheers, > >>>>>>>> Tom > >>>>>> > >> > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
