Improve the apache rewrite instructions.
Specifically, mention the `NE' flag and point at the apache "current" version of the page.
This commit is contained in:
parent
6a220d7d69
commit
42eb0a9e88
|
@ -6,37 +6,48 @@
|
|||
|
||||
@section{How do I use Apache with the Racket Web Server?}
|
||||
|
||||
You may want to put Apache in front of your Racket Web Server application.
|
||||
Apache can rewrite and proxy requests for a private (or public) Racket Web Server:
|
||||
You may want to put Apache in front of your Racket Web Server
|
||||
application. Apache can rewrite and proxy requests for a private (or
|
||||
public) Racket Web Server:
|
||||
|
||||
@verbatim{
|
||||
RewriteRule ^(.*)$ http://localhost:8080/$1 [P]
|
||||
RewriteEngine on
|
||||
RewriteRule ^(.*)$ http://localhost:8080/$1 [P,NE]
|
||||
}
|
||||
|
||||
The first argument to @exec{RewriteRule} is a match pattern. The second is how to rewrite the URL.
|
||||
The @exec{[P]} flag instructs Apache to proxy the request. If you do not include this, Apache will
|
||||
return an HTTP Redirect response and the client should make a second request.
|
||||
The first argument to @exec{RewriteRule} is a match pattern. The second
|
||||
is how to rewrite the URL. The bracketed part contains flags that
|
||||
specify the type of rewrite, in this case the @litchar{P} flag instructs
|
||||
Apache to proxy the request. (If you do not include this, Apache will
|
||||
return an HTTP Redirect response and the client will make a second
|
||||
request to @litchar{localhost:8080} which will not work on a different
|
||||
machine.) In addition, the @litchar{NE} flag is needed to avoid
|
||||
escaping parts of the URL --- without it, a @litchar{;} is escaped as
|
||||
@litchar{%3B} which will break the proxied request.
|
||||
|
||||
See Apache's documentation for more details on @link["http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriterule"]{RewriteRule}.
|
||||
See Apache's documentation for more details on
|
||||
@link["http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule"]{RewriteRule}.
|
||||
|
||||
@section{Can the server create a PID file?}
|
||||
|
||||
The server has no option for this, but you can add it very easily. There's two techniques.
|
||||
The server has no option for this, but you can add it very
|
||||
easily. There's two techniques.
|
||||
|
||||
First, if you use a UNIX platform, in your shell startup script you can use
|
||||
@verbatim{
|
||||
echo $$ > PID
|
||||
exec run-web-server
|
||||
echo $$ > PID
|
||||
exec run-web-server
|
||||
}
|
||||
|
||||
Using @exec{exec} will reuse the same process, and therefore, the PID file will be accurate.
|
||||
Using @exec{exec} will reuse the same process, and therefore, the PID
|
||||
file will be accurate.
|
||||
|
||||
Second, if you want to make your own Racket start-up script, you can write:
|
||||
@(require (for-label mzlib/os))
|
||||
@racketblock[
|
||||
(require mzlib/os)
|
||||
(with-output-to-file _your-pid-file (lambda () (write (getpid))))
|
||||
(_start-server)
|
||||
(require mzlib/os)
|
||||
(with-output-to-file _your-pid-file (lambda () (write (getpid))))
|
||||
(_start-server)
|
||||
]
|
||||
|
||||
@section[#:tag "faq:https"]{How do I set up the server to use HTTPS?}
|
||||
|
|
Loading…
Reference in New Issue
Block a user