The NSLU2 currently has six web server packages for installation via the ipkg system. Each of these packages has its strengths. All these webservers have packages which include PHP and MySQL integration.
- thttpd - tiny/turbo/throttling HTTP daemon. The stock linksys build comes with a version of thttpd to host the web administration pages. thttpd is a simple, small, portable, fast, and secure HTTP server. Simple: It handles only the minimum necessary to implement HTTP/1.1. Well, maybe a little more than the minimum - it even handles virtual hosting! Small: See the comparison chart. It also has a very small run-time size, since it does not fork and is very careful about memory allocation. Portable: It compiles cleanly on most any Unix-like OS, specifically including FreeBSD, SunOS 4, Solaris 2, BSD/OS, Linux, OSF. Fast: In typical use it's about as fast as the best full-featured servers (Apache, NCSA, Netscape). Under extreme load it's much faster. Secure: It goes to great lengths to protect the web server machine against attacks and breakins from other sites. It also has one extremely useful feature (URL-traffic-based throttling) that no other server currently has. Plus, it supports IPv6 out of the box, no patching required. http://www.acme.com/software/thttpd
- apache - The Apache HTTP Server Project is a collaborative software development effort aimed at creating a robust, commercial-grade, featureful, and freely-available source code implementation of an HTTP (Web) server. The Apache HTTP Server is an open-source HTTP server for modern operating systems including UNIX and Windows NT. The goal of the Apache project is to provide a secure, efficient and extensible server that provides HTTP services in sync with the current HTTP standards. Apache has been the most popular web server on the Internet since April of 1996. The February 2005 Netcraft Web Server Survey found that more than 68% of the web sites on the Internet are using Apache, thus making it more widely used than all other web servers combined. http://www.apache.org
- cherokee - Another option is Cherokee, available via ipkg. It has a nasty habit of overwriting your index.html file every time you install/upgrade it, so be sure to chmod or copy it somewhere first. I am still playing with it, but it looks very good so far. http://www.cherokee-project.com/
- lighttpd - lighttpd "pronounced Lighty" is available via ipkg. It doesn't over write your index.html file. It plays well along the side of thttpd. It has low memory requirements. It is feature rich (virtual hosts/directories, authentication, php/cgi, load balancing, more) and comes with several performance & feature enhancing modules. Consider visiting http://lighttpd.net/ to see if it fills your needs. lighttpd seems to have a http GET bug preventing downloads larger than 512kB. At least another NSLU2 user besides me reported this bug on the lightpd web site - sf - To fix this just put "server.network-backend = "write" " in the lighttpd.conf file. http://www.lighttpd.net
- nginx - See the HowTo.ReverseProxy page.
All of these web servers can integrate with PHP and MySQL, but the differences in the NSLU2 environment really come as a trade off of functionality, compatability and resource usage:
The apache web server is a fully functional and industrial grade webserver. It defines the expected functionality of web-servers. Apache focuses on enterprise level functionality. Appweb is a highly functional web server including SSL support and virtual sites. It looks on itself as the 'apache for embedded systems' aiming to be small and efficient without compromising functionality or security. The thttpd is focused on being small and fast. It provides limited support for virtual sites, but its main focus is on small size and minimal resource usage.
Apache is the standard. It is the most popular web server in the world. Most web applications are targetted at Apache. Appweb aims to be compatible with Apache and supports many of the same applications. I can't speak for thttpd.
Apache is a resource hog. Even with the careful configuration and compilation options chosen by the maintainers of the NSLU2 apache packages it will really wack your slug. Appweb has been designed from the ground up as an embedded systems web server which provides an functionality equivalent to apache. thttpd is tiny and very efficient with resources. nginx is also very efficient.
Apache, lighttpd and nginx can do SSL client certificate authentication out of the box. For the others you need to run stunnel as well.
Other web servers
- busybox httpd