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:
RewriteRule ^(.*)$ http://localhost:8080/$1 [P]
The first argument to RewriteRule is a match pattern. The second is how to rewrite the URL. The [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.
See Apache’s documentation for more details on RewriteRule.
The server has no option for this, but you can add it very easily. There’s two techniques.
echo $$ > PID
Using 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:
|(with-output-to-file your-pid-file (lambda () (write (getpid))))|
This requires an SSL certificate and private key. This is very platform specific, but we will provide the details for using OpenSSL on UNIX:
openssl genrsa -des3 -out private-key.pem 1024
This will generate a new private key, but it will have a passphrase on it. You can remove this via:
Now, we generate a self-signed certificate:
openssl req -new -x509 -nodes -sha1 -days 365 -key private-key.pem > server-cert.pem
(Each certificate authority has different instructions for generating certificate signing requests.)
We can now start the server with:
The Web Server will start on port 443 (which can be overridden with the -p option) using the "private-key.pem" and "server-cert.pem" we’ve created.
Refer to Limiting Requests.