Saetta Web Server
- General description of Saetta Server and F.A.Q..
- Technical documentation for Saetta Web Server and F.A.Q..
Saetta Web Server is a full featured Web Server based on Saetta Server aimed at high traffic dedicated and virtual private servers.
This software allows web developers to develop high-performance web sites and web applications, requiring only a little effort for the implementation in the server of web pages written in the C or C++ programming languages. The software contains an internal framework embedded in the core of the Web Server to easily and quickly access to all the functions of the server.
Even if the main purpose of Saetta Web Server is use it to develop web applications in C or C++ using the SAAPI (Saetta's API), it's possible to use Saetta Web Server as a high-performance web server to host websites with static files and dynamic web pages written in the PHP programming language. Saetta Web Server with PHP is an extra release of Saetta Server, forked off from Saetta Web Server, implementing a native and embedded support for PHP. Saetta Web Server with PHP is ways faster than Apache with mod_php or FastCGI.
List of features of Saetta Web Server:
- Multi threaded and balanced among all CPUs.
- Automatic queue for incoming connections.
- Event driven.
- Sendfile syscall.
- Asynchronous input/output (AIO).
- Socket bindings to multiple ports and to multiple interfaces (devices).
- IPv4 and IPv6 support.
- Transport Layer Security (TLS) and Secure Sockets Layer (SSL).
- Server Name Indication.
- Hot-reloads of configuration files/worker processes.
- Virtual hosting to host multiple websites.
- Virtual directories.
- Web framework via SAAPIs. Includes APIs for the generation of HTML documents, management of the GET/POST/HEAD HTTP methods, handling of uploaded files.
- SAAPIs are supported as global filters for virtual directories, single filters and handlers.
- CGI is supported for administrative scripts (its usage is not recommended.)
- Embedded PHP support in Saetta Web Server with PHP.
- Support for the X-Sendfile header in CGI applications and native PHP scripts.
- Password protected virtual directories via basic or digest authentication.
- URL rewriting.
- HTTP pipelining.
- Keep-alive in HTTP connections.
- Partial HTTP responses.
- Single configuration file for the server in the XML format.
- Log rotation and compression.
- Logging in the Apache2 compatible log format and Common Log Format.
- Custom logging.
- Custom error pages.
- Integrated memory cache support with APIs also available from PHP.
- Atomic buffers/strings/numeric memory cache operations with APIs also available from PHP.
- Buffered outputs for SAAPIs, directory listings and for PHP webpages.
- Configurable minicache to serve full webpages right from memory. Also supported for PHP webpages.
- Transparent HTTP GZip compression (SAAPI, PHP Webpages).
- GZip compressed cache.
Saetta Web Server is based on Saetta TCP Server. The software is multi-threaded to balance the load on multiple CPU cores and is events driven. Programmed with the most recent features of GNU/Linux systems, Saetta Web Server is able to support several tens of thousands of concurrent connections without degrading its performances. Saetta Web Server features an advanced management of the virtual memory, an internal connections load balancer, an automatic handling of output streams and shared file descriptors. The server also supports transparently the asynchronous input/output, the sendfile function as well as the SSL protocol for encrypted connections. Saetta Server is able to detect and select the best method to send files and buffers to its connected clients, without requiring you to worry about all the possible states of an event driven server. The escalation of TCP connections to SSL connections is easy to implement, as well as the escalation of SSL connections with the SNI (Server Name Indication) protocol to another SSL certificate. An instance of the server is able to run multiple web applications, in separate modules and with different users. The server supports the hot-reloads of modules, to update the modules without loosing the current connections.
- Saetta Web Server vs Nginx - benchmark with static files.