At this time, hssTVS is a sole
static content server. It is meant to be as fast as possible with a
rich feature set especially for this purpose. After this one is
finished to my satisfaction, I will branch a full featured server for
dynamic content (hsdTVS). It does currently not support multiple CPUs
or HyperThreading. If there's demand, I can easily spawn a version
to overcome this weakness. However, tests have shown a 5-10%
performance penalty on single CPU machines for such a thing and even a
single modern CPU/Core can easily digest a GBit line by itself.
What it supports:
- lightning fast single task multiplexing architecture,
based on epoll
- developed and tested with security coming first
- behaves very well under heavy load
- GET, HEAD, TRACE, OPTIONS for static content
- compliant to http/1.1 and http/1.0 ( but not http/0.9 )
- persistent connections for http/1.1 and keep-alive for
http/1.0
- virtual servers via the complete host name
- mass hosting via path parts taken from the host name. Up
to 10
directory levels deep, each with a seperate keyword allow list
- supports timestamps (if-modified-since,
if-unmodified-since, if-range)(304)
- simple byte ranges (one range per request)(206)(start-end,
start-, -end)
- user customizable MIME types
- simple MIME type based access filter
- referer-host checking against traffic theft (allow or deny
list)
- dynamic file cache for flexibility and speed
- multiple listen ports
- auto redirect for virtual servers (302)
- possibility to add static custom header lines to the http
response header
- customizable expire headerline (virtual server based)
- support for customizable error responses (with static
files)
- maximum request http headersize adjustable
- access log files on a per virtual server basis or globally
- log file for errors/messages and the watchdog
- forced log file rotate based on lines, byte size or time
intervall
- watchdog with instant recovery to maximize uptime
- runs completely in user space, no OS modification required
Next upcoming features:
- static cache, preloaded files for maximum speed
- other cache algorithms than simple LRU
- posibility to specify cache on a per vhost entry base
-
Thinking about:
- support for pre-compressed files
- compression on the fly
- graceful reconfig, without stopping to serve requests
- request forwarding to another server for dynamic content
creation
If you need a special feature
that's not implemented, contact me,
perhaps I can include it in the next version... That's as long as it
doesn't need/is dynamic content creation. For that you'll have to
wait/look for the dynamic big brother of hssTVS.
There are currently no plans to go open source, unless someone actually
pays a large sum for that purpose.
|