Hiawatha (web server)
Hiawatha is a web server available for multiple platforms. It is developed by Hugo Leisink.[4]
Original author(s) | Hugo Leisink |
---|---|
Developer(s) | Hugo Leisink |
Initial release | 2002 |
Stable release | 11.3[1]
/ 4 January 2023 |
Repository | |
Written in | C[2] |
Operating system | FreeBSD, Haiku os, HP-UX, IBM AIX, Linux, OpenBSD, OS X, QNX, Solaris, Unix-like and Windows[3] |
Platform | POSIX, Cross-platform |
Available in | English |
Type | Web server |
License | GPL-2.0-only |
Website | www |
History
Hiawatha started in January 2002 as a small web server for servers with older hardware. Leisink, a computer science student at the time, initially created the server to support internet servers in student houses in Delft of South Holland, the Netherlands. As the server was designed with improved security as its focus, Leisink states that "there are a lot of security features in Hiawatha you won't find in any other webserver."[4]
The January 2009 edition of Linux Magazine included an article on the Hiawatha web server, describing it as "a light web server with good performance and some innovative security functions".[5] Hiawatha is frequently cited as a lightweight alternative to Apache, as it prioritizes easy installation and reduced storage over adding many other features.[6][7][8]
- Important versions
- 1.0: September 2002. A basic but functional web server.
- 2.0: March 2004. Use of multithreading instead of forking.
- 3.0: September 2004. SSL support.
- 4.0: December 2005. A CGI-wrapper[9] for improved security was included.
- 5.0: October 2006. FastCGI support for improved CGI speed.
- 5.2: November 2006. First-time integration to the FreeBSD Ports system at version 5.2 in December 2006,[10] to the OpenBSD ports tree at version 5.7 in March 2007.[11]
- 5.12: August 2007. URL rewriting support.
- 6.0: October 2007. IPv6 support.
- 6.6: April 2008. XSLT support.
- 6.10 : October 2008. Prevent cross-site request forgery added.
- 7.0: February 2010. Remote monitoring support.
- 8.0: January 2012. Autoconf replaced with CMake, OpenSSL replaced with PolarSSL.
- 9.0: March 2013. Clients handled via thread pool instead of creating threads on the fly.
- 10.0: November 2015. Streamlined handling of Directory sections in server configuration.
- 10.9: February 2019. Last major developed release.
In February 2019 Leisink simultaneously announced the release of version 10.9 and the end of major development in a pair of blog posts.[12]
Features
The Hiawatha web server has features such as:
- CGI and load balancing FastCGI support
- Reverse proxy functionality
- Chroot support
- URL toolkit which supports URL rewriting
- SSL and TLS support
- Basic and digest HTTP authentication
- Upload speed control by traffic shaping
- Internal file caching
- IPv6 support
- HTTP compression using gzip
- Virtual hosting
- Support for WebDAV applications
- Support for Server Name Indication (added in v8.6)
Hiawatha has many security features that no other web server has, like preventing SQL-injection, cross-site scripting (XSS), Cross-site request forgery (CSRF) prevention, denial-of-service protection, control external image linking, banning of potential hackers and limiting the runtime of CGI applications.[13] The author worked on adding RFC3546 support, but "the OpenSSL documentation [on this subject] is just extremely poor" so progress was difficult. Although, RFC3546 support has been included since v8.6 version which is developed with PolarSSLv1.2.
Performance
Although security is the main focus, Hiawatha users also speak highly of its speed and performance. According to a performance test carried out by an independent researcher (SaltwaterC), Hiawatha is faster than ten other servers tested for Drupal static content, while performing comparably to the rest in other metrics.[14]
Hiawatha supports load-balanced FastCGI and had its own PHP-FastCGI utility (although that has been deprecated and replaced with the PHP project's FastCGI Process Manager (PHP-FPM)).[15] This makes it fast and scalable for handling dynamic content.
See also
References
- "hiawatha (11.3) stable; urgency=low". 4 January 2023. Retrieved 26 February 2023.
- "Hiawatha - Ohloh". Ohloh.net. Retrieved 12 April 2013.
- Hiawatha on Haiku OS
- Leisink, Hugo. "Hiawatha About Page". Retrieved 22 January 2015.
- Schürmann, Tim. "Safe Passage » Linux Magazine". Linux Magazine. Retrieved 2021-01-19.
- Wadge, Chris. "Why I Use the Hiawatha Webserver". Dotbalm.org. Archived from the original on 23 January 2015. Retrieved 23 January 2015.
- Vaughan-Nichols, Steven J. "Picking the Right Web Server for the Right Job". SmartBear. Retrieved 23 January 2015.
- Lavigne, Dru. "Hiawatha Web Server". Toolbox.com. Archived from the original on 18 July 2014. Retrieved 23 January 2015.
- Manual page cgi-wrapper - Hiawatha webserver Archived 2012-10-19 at the Wayback Machine
- "FreshPorts -- www/hiawatha: Advanced and secure webserver for Unix". www.freshports.org. Retrieved 2021-01-19.
- "OpenPorts.se | The OpenBSD package collection". openports.se. Archived from the original on 2021-02-25. Retrieved 2021-01-19.
- Leisink, Hugo. "Hiawatha webserver". www.hiawatha-webserver.org. Retrieved 2023-08-04.
- Leisink, Hugo. "Hiawatha Webserver". www.hiawatha-webserver.org. Retrieved 2023-09-08.
- PHP_web_serving_study Archived 2012-04-26 at the Wayback Machine
- Leisink, Hugo. "Hiawatha webserver". www.hiawatha-webserver.org. Retrieved 2021-01-18.
External links
- Official website
- Lavigne, Dru (December 29, 2006). "Hiawatha Web Server". IT Toolbox. Archived from the original on July 18, 2014. Retrieved June 29, 2010. ( Unix blog )
- Schürmann, Tim (January 2009). "Der sichere Webserver Hiawatha" [The secure Web server Hiawatha]. Linux (in German). Admin Magazine. Archived from the original on 2016-03-04. Retrieved 2014-06-27.