mirror of https://github.com/nealey/eris.git
63 lines
2.8 KiB
Plaintext
63 lines
2.8 KiB
Plaintext
Usage:
|
|
|
|
tcpserver -v -RHl localhost -u 1234 -g 1234 0 80 ./httpd
|
|
|
|
Will log to stderr in the form
|
|
|
|
127.0.0.1 200 23 localhost Links_(0.96;_Unix) none /index.html
|
|
|
|
where 127.0.0.1 is the client IP, 200 is the HTTP exit code, 23 is the
|
|
size of the content that was served (or 0 for unsuccessful exit codes),
|
|
localhost is the Host: header (the virtual host), the next token is the
|
|
user agent with spaces replaced by underscores, the next token (none) is
|
|
the Referer HTTP header or "none" if none was given, and the rest of
|
|
each line is the decoded requested URL.
|
|
|
|
fnord-httpd does simple virtual hosting. If the Host: HTTP header is
|
|
there, fnord will try to chdir to a directory of that name, i.e. if the
|
|
client asks for "/" on host "www.fefe.de:80", fnord will look for
|
|
"www.fefe.de:80/index.html". Fnord will also try the directory
|
|
"default" if no specific directory for the virtual host was there. If
|
|
the directory is a dangling symlink and fnord was compiled with
|
|
-DREDIRECT (default), fnord will redirect the whole site. Examples:
|
|
|
|
lrwxrwxrwx 1 leitner users 19 May 5 01:09 www.foo.de:80 -> http://www.baz.de/
|
|
lrwxrwxrwx 1 leitner users 20 May 5 01:12 www.bar.de:80 -> =http://www.baz.de/
|
|
|
|
http://www.foo.de/blub.html will be redirected to http://www.baz.de/blub.html.
|
|
http://www.bar.de/blub.html will be redirected to http://www.baz.de/.
|
|
|
|
fnord implements el-cheapo HTTP ranges (only byte ranges and only of the
|
|
form x-y, not multiple ranges).
|
|
|
|
fnord implements content type matching and Accepts: parsing, but the
|
|
content type table is compiled in, i.e. to change it, you have to change
|
|
the source code. Shouldn't be a problem because you _have_ the source
|
|
code ;)
|
|
|
|
fnord implements HTTP redirection. If a file is not found, but a
|
|
dangling symlink is there under the same name, fnord will issue a
|
|
redirection to the contents of that symlink. To be RFC compliant, the
|
|
symlink must point to a full URL, i.e.
|
|
|
|
ln -s ftp://foobar.math.fu-berlin.de/pub/dietlibc/dietlibc-0.11.tar.bz2 dietlibc-0.11.tar.bz2
|
|
|
|
fnord implements in-place substitution of * to *.gz
|
|
if the file is available and the client supports the mime-type and
|
|
content-encoding. That means you can save substantial bandwidth by
|
|
having an index.html.gz for each index.html, as most clients can
|
|
transparently decode gzipped files.
|
|
|
|
fnord will change dots at the start of file or directory names to colons
|
|
in the query before trying to answer them.
|
|
|
|
fnord understands and implements keep-alive connections.
|
|
|
|
fnord can use sendfile on Linux to enable zero-copy TCP.
|
|
|
|
If fnord is given the -c option, it will regard files
|
|
whose names end with ".cgi" as CGI programs and try to execute them.
|
|
CGI programs starting with "nph-" will be handled as no-parse-header
|
|
CGIs. Please see http://hoohoo.ncsa.uiuc.edu/cgi/interface.html for the
|
|
CGI specification.
|