webfsd - a lightweight http server
This is a simple http server for purely static content. You can use it to serve
the content of a ftp server via http for example. It is also nice to export
some files the quick way by starting a http server in a few seconds, without
editing some config file first.
- -h
- Print a short help text and the default values for all
options.
- -4
- Use IPv4.
- -6
- Use IPv6.
- -d
- Enable debug output.
- -s
- Write a start/stop notice and serious errors to the syslog. Specify
this option twice to get a verbose log (additional log events like dropped
connections).
- -t sec
- Set network timeout to >sec< seconds.
- -c n
- Set the number of allowed parallel connections to >n<. This
is a per-thread limit.
- -a n
- Configure the size of the directory cache. Webfs has a cache for directory
listings. The directory will be reread if the cached copy is more than one
hour old or if the mtime of the directory has changed. The mtime will be
updated if a file is created or deleted. It will not be updated if
a file is only modified, so you might get outdated time stamps and file
sizes.
- -j
- Do not generate a directory listing if the index-file isn't found.
- -y n
- Set the number of threads to spawn (if compiled with thread support).
- -p port
- Listen on port >port< for incoming connections.
- -r dir
- Set document root to >dir<.
- -R dir
- Set document root to >dir< and chroot to >dir< before start
serving files. Note that this affects the path for the access log file and
pidfile too.
- -f file
- Use >file< as index file for directories. If a client asks
for a directory, it will get >file< as response if such a file
exists in the directory and a directory listing otherwise. index.html is a
frequently used filename.
- -n hostname
- Set the hostname which the server should use (required for
redirects).
- -i ip
- Bind to IP-address >ip<.
- -l log
- Log all requests to the logfile >log< (common log format).
Using "-" as filename makes webfsd print the access log to
stdout, which is only useful together with the -F switch (see below).
- -L log
- Same as above, but additional flush every line. Useful if you want monitor
the logfile with tail -f.
- -m file
- Read mime types from >file<. Default is
/usr/local/etc/mime.types. The mime types are read before chroot() is
called (when started with -R).
- -k file
- Use >file< as pidfile.
- -u user
- Set uid to >user< (after binding to the tcp port). This
option is allowed for root only.
- -g group
- Set gid to >group< (after binding to the tcp port). This
option is allowed for root only.
- -F
- Don't run as daemon. Webfsd will not fork into background, not detach from
terminal and report errors to stderr.
- -b user:pass
- Set user+password for the exported files. Only a single username/password
combination for all files is supported.
- -e sec
- Expire documents after >sec< seconds. You can use that to
make sure the clients receive fresh data if the content within your
document root is updated in regular intervals. Webfsd will send a Expires:
header set to last-modified time plus >sec< seconds, so you can
simply use the update interval for >sec<.
- -v
- Enable virtual hosts. This has the effect that webfsd expects
directories with the hostnames (lowercase) under document root. If started
this way: "webfsd -v -r /home/web", it will look for the file
/home/web/ftp.foobar.org/path/file when asked for
http://ftp.FOObar.org:8000/path/file.
- -x path
- Use >path< as CGI directory. >path< is interpreted relative to
the document root. Note that CGI support is limited to GET requests.
- -S
- Secure web server mode. Warning: This mode is strictly for
https.
- -C
- File to use as SSL certificate. This file must be in chained PEM
format, first the privat RSA key, followed by the certificate.
- -P
- Password for accessing the SSL certificate.
Webfsd can be installed suid root (although the default install
isn't suid root). This allows users to start webfsd chroot()ed and to bind
to ports below 1024. Webfsd will drop root privileges before it starts
serving files.
Access control simply relies on Unix file permissions. Webfsd will
serve any regular file and provide listings for any directory it is able to
open(2).
Gerd Knorr <kraxel@bytesex.org>
FreeBSD port by Charles F. Randall <cfr@pobox.com>
Copyright (C) 1999,2000 Gerd Knorr <kraxel@bytesex.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
Inc., 675 Mass Ave, Cambridge, MA 02139, USA.