[racket] What controls the web-server continuation URL?

From: Norman Gray (norman at astro.gla.ac.uk)
Date: Sun Jan 16 19:22:29 EST 2011


What controls the continuation URL generated when using the Racket web server?

I'm using send/formlet to present and process a form.  The form is presented on a page called http://localhost:8000/user, and when it's submitted, it goes to a continuation page .../user;blah.

That works fine on http://localhost:8000/user.  But on the deployment machine, the server in question is behind a proxy, so that the actual public URL is http://example.edu/podcasting/user.  In this case, the continuation URL generated is just http://example.edu/user;blah, which is of course wrong.

Now, the server obviously doesn't know that it's sitting behind a proxy, so it needs to be told to generate the extra element in the URL path.  But how?

The server is started up with:

          (serve/servlet audiotag-dispatch
                         #:servlet-path "podcasting/"
                         #:servlet-regexp #rx""
                         #:listen-ip #f ;listen on all interfaces (only loopback by default)
                         #:port (port-number)
                         #:launch-browser? #f

#:servlet-path looks likely, here, but it doesn't seem to have the desired effect.  None of the other configuration parameters look likely either, and the contents of collects/web-server is too clever for my frazzled brain.  Can anyone advise?

I apologise if the answer is RTFM, but I'm on a bit of a deadline, enough that it seems prudent to give in and ask quickly, rather than save my pride.

Thanks for any pointers.

Best wishes,


Norman Gray  :  http://nxg.me.uk
Dept Physics and Astronomy, University of Glasgow, UK

Posted on the users mailing list.