NAME¶
webfsd - a lightweight http server
SYNOPSIS¶
webfsd [ options ]
DESCRIPTION¶
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.
OPTIONS¶
- -h
- Print a short help text and the default values for
all options. If used as last option, the printout will reflect command
line choices.
- -4
- Use IPv4 only.
- -6
- Use IPv6 only.
- -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
/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. The first character in the path string must be a
slash!
- -S
- Secure web server mode. Warning: This mode is
strictly for https.
- -C path
- File to use as SSL certificate. This file must be in
chained PEM format, and may contain server certificate as well as RSA key,
but the latter can equally well be a separate entity, see -K.
- -K path
- File that contains the private key, if the key is not
bundled with the certificate.
- -A path
- Optional file containing CA-certificate and certificate
chain.
- -V
- Apply a verification procedure to the client certificate
and chain. These must, if this option is chosen, be supplied by any
client. Each chain member must pass verification, and must in turn verify
the next chain member. The validity time for the client certificate is
checked.
- -Q ciphers
- Specify acceptable cipher priorities for handshake, data
exchange, etc. The default value is NORMAL.
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).
AUTHOR¶
Gerd Knorr <kraxel@bytesex.org>
FreeBSD port by Charles F. Randall <cfr@pobox.com>
COPYRIGHT¶
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.