An Overview of the Boa Web Server
Gentu writes "There is a pretty new and little known, lite web server in town, named Boa. The server can run very fast on older machines, even on embedded devices, but it is only CGI-based. OSNews introduces Boa (running under Linux) and it includes some preliminary benchmarks against Apache and thttpd."
If Boa is too constricting, you might want to switch back to good ol' Apache
Bah dum bah!
The test performance against apache using a different test program for each server. Furthermore, it looks like Boa is designed for one thing... speed. Apache is designed to be feature complete. It's like comparing apples and pumpkins.
Pretty new? You what? I've been running it for five years. Even the OSNews article mentions that "Boa was written sometime in the early 1990's by Paul Philips". It is definitely a nice little server tho'.
It seems a little odd to compare BOA and Apache. Granted Apache is the web server of choice so a comparison is not too bizarre but, it is still an apples to oranges comparison.
Boa is much smaller than Apache. This seems like a good thing on the surface, especially for embedded applications, as was suggested in the article. But, Boa is slower and much less functional than Apache. They really aren't comparable servers.
There is a pretty new and little known
You'd think the submitter would at least read the article. It says right in there that it's been in development since before 1995, "In fact Boa is one of the oldest web servers in constant development".
I've had enough abrasive sigs. Kittens are cute and fuzzy.
I thought the whole point of it was to be fast and light. But only a few comments submitted and the site is /.ed already!
even on the windows side, there is sambar server, tiny server (which is very small and very fast), and a multitude of others, some are feature rich, others just push out plain web pages.
Thanks to file sharing, I purchase more CDs
Thanks to the RIAA, I buy them used...
I didn't see any benchmarks against Apache or thttpd in the article - I saw boa benchmarked with ab and zb. Looks interesting enough to try out, although I still haven't even bothered putting in thttpd to serve graphics yet, so I probably won't ever get around to boa after all. :/
creation science book
If you're interested in small webservers, fnord is another one. It even does CGI, vhosts and directory listings and it's only 18K. It requires tcpserver though.
"In fact, there are dozens of currently unrealized features that have already been implemented in one branch or another that might someday make it into a Boa release. In fact, there are outstanding requests for various features that have already been implemented in one of the branches that I hope will make it into the first 0.95.0 release."
What is this all about and why do they keep saying "In fact"?
Hi
According to my tests BOA beats Apache.
BUT the ZEUS web server (www.zeus.com) which is 'feature complete' (including mod_perl in version 4.2) still beats both of them.
Have a nice day!
I've used Boa in a number of cases where certain groups of CGI scripts need to run as a specific UID and I didn't want to use the SUID functionality of Apache. Because it is so lightweight, having a few of these hanging around for various citical system UIDs can really be handy, esp. if you have an aversion to using SUID wrappers and such. A good example is using Boa running as the same UID as the mailing list processor so you can have web administration of the list rosters. And the users don't even know about it because I use the ProxyPass directive to shuttle the requests from the standard port 80 up to the port on which Boa is running, so my logging is still centralized/standardized through Apache.
Boa is very cool. Kudos to the developers!
How well does it fork?
People, I'm sure you all realize as much as the next Open Source supporter/coder/documenter/pioneer that efforts from our end are grossly mismanaged when compared to those of our proprietary counterparts. I can admit this, and do so without embarassment, simply because I'm proud of how far we've all come and am excited about what the next few years have in store for us all.
That being said, we really need to question these actions of our colleagues who develop the Boa web server. We already have Apache, which is truly a world-class HTTPD server in and of itself. Why do we need to waste the time and effort of so many skilled coders and frontiersmen of the Open Source revolution on a Web server project that should clearly be marked -1, Redundant?
I agree that Apache can seem a bit bloated sometimes, but I assure you that anyone who reads a few man pages could figure out how to install and configure a minimalistic instance of the server. So in the time it took to write Boa, I'd wager that millions upon millions could have read the Apache documentation and put a minimalized install of it into action.
I mean, think about it folks. Then, with their newly saved time, these Boa developers could have embarked on another project that's of high merit, something that we as Open Sourcers truly need, and, to quote typical manager talk, "needed yesterday".
I am doing my part for our revolution, people. I regularly donate to the Electronic Frontier Foundation (EFF), Free Software Foundation (FSF), and Kuro5hin (K5). Moreover, I also spend at least 7 hours every weekend contributing code to some of the more popular projects that you have seen on SourceForge, such as the mail filtering utility and the Gayme instant messaging program.
I don't know, I guess I just hate to see duplicate work. It's like back in grade school when the teacher would assign "seat" or "busy" work just so she could sneak off to the bathroom and snort some cocaine.
If you celebrate Xmas, befriend me (538
I submited this one some weeks ago but it didn't make it to the frontpage. It's a new http server, written 100% in PHP, somebody ever tried it ?
...available here. I've had it running on a 386 with only 4MB RAM running the NetBSD "tiny" distribution.
Small footprint, pretty functional: HTTP, CGI, etc. It's referenced in the BOA docs.
OK Boa is good for running on a 2mb 386, but I would like to host a domain web with some more features than it could contain. With apache needing at least a 200mhz pc and a hefty speck of ram, what is there for the middle ground, when you have a 486 or early pentium sitting around and should be put it to work?
The author is obviously not that into technology. Software released in 1995 isn't new at all by my standards. I certainly wouldn't consider most other things from 1999 new either. A car? certainly not. A building? maybe. A country? Well, OK.
(n.t.)
MORTAR COMBAT!
It's probably your precious 2.8 GHz P4 overheating and reducing its frequency down to 1.4 GHz... aren't you glad you paid for a feature like this?
where the www is heading, IMHO. Seven years ago, anyone was hardly using dynamic stuff on the web, and IIRC back then it was mostly flat HTML.
But today, when 90% of the stuff served (besides images) by web servers are dynamic content, why does a web server like this get a headline?
Ok, I know it does CGI, but come on, CGI is as dead as Ultrix.
I'm not trying to let this project down. I'm sure there are plenty of happy users that don't need the "bloat" associated with Apache, IIS and other servers--but I'd be surprised if they did anything more advanced than the occasional photo album homepage.
We all use bash (mostly). Not because it's the smallest, but because it does everything we've come to expect from a shell.
To me, Boa seems a lot like the effort to rewrite the unix utilities in asm to reduce size. It's a challenging excersise, but in the long run it's going nowhere.
The article says Boas "internally multiplexes the connections" but now Apache supports threads - sounds pretty similar to me.
i'd have to agree, except in certain situtations. large sites sometimes run other servers just for images, files, small pages, etc. in that situation i think this server would be very useful.
These are very, very different approaches to creating a scalable server.
See Non-blocking I/O is good for more background on what multiplexing is and why it is good.
MORTAR COMBAT!
At least this is an answer to the "Ask Slashdot" questions where some tard asks something along the following:
Hi, I spent all my money on pr0n, and now I want to run a web server on my 386SX to handle an ecommerce website. Database would be nice too. And I want it to run fast. I'm looking towards Linux, since windoze 2000 seems to hardly move at all. That bloatware! What are my options?
CGI is as dead as Ultrix.
Anyone ever noticed how dynamic pages are much more likely to get /.ed than static ones? There are uses for PHP/MySQL or whatever, but fast it aint, and a lot of the time it seems to be used because it's A Good Thing rather than because it is actually necessary.
For relatively simple tasks, a standalone CGI script is always going to be faster than a generic DB solution. For really complex tasks, CGI provides far more flexibility. For a lot of jobs in the middle, a DB-driven embedded scripting solution may be just what is needed, but there's still plenty of work for CGI at the edges.
One of my programs writes static pages that you can edit via a web interface. I haven't load tested it yet, but I'd be willing to bet that Apache serving static pages uses far less resources than Apache building PHP/MySQL pages. If BOA will serve static pages faster than Apache, the performance benefits of producing static pages must be even clearer.
Virtually serving coffee
And how's the scale-ability?
Hopefully boa's scalability is better than the web server they're using now.
Your credit card information wants to be free.
So was having the website linked directly from a Slashdot article their way of stress testing their software?
;)
Apparently, its load handling just isn't up to the task yet.
bytesmythe
Hypocrisy is the resin that holds the plywood of society together.
-- Scott Meyer
Rich.
libguestfs - tools for accessing and modifying virtual machine disk images
Several posters have commented derisively on www.boa.org's inability to take the load of a slashdot effect. These comments miss the mark totally.
.
www.boa.org is hosted at no charge by Russ Nelson. I don't thank him often enough for this help. He provides similar service for selected other community projects, too, check out http://www.russnelson.com/
I also don't hold it against Russ that he doesn't use Boa for his web server. He has other things on his mind than learning about one more piece of software; he used Apache before he hosted Boa, and he continues to use Apache. It does the job for him. If the site acts slashdotted, knowing Russ, I suspect his pipe is clogged, and there's not much he can do about that.
So if y'all want to slashdot a Boa server to see if it holds up, pick something other than www.boa.org. There are plenty to choose from, including some that wouldn't even notice the slashdot effect.
Just like we only need one OS, one CPU architecture, one RAM standard...come on, I don't understand all the bashing BOA has received here. Sure, it's not my HTTPd of choice, nor is it for a lot more folks, that doesn't negate the fact that it's more than sufficient, yea, even perfectly tailored for others. The very thing a lot of people here are ranting about is the very thing that makes OSS different from the 'enemy'. So you don't like it, so you don't need it. Someone else does, so let it be.
Don't park drunk, accidents cause people.
I do like the features of Apache, for example when the site needs PHP+MySQL. But it's the right tool for the right job. And I keep that 486 from polluting the Earth on an 'acid trip' to China.
Escher was the first MC and Giger invented the HR department.
...with an especially nice screen shot... :-)
here. It's built for security, but I think it serves up only straight HTML, no CGI or SSL. I haven't personally used it, but I thought it'd be a useful link to pass along.
>There is a pretty new
It's not new. As the linked article says, it's been around since 1995, so it's almost as old as the web.
>and little known
I link to it from the thttpd page, which gets a quarter million hits per month, so I guess I've done my part to make Boa better known.
>it is only CGI-based.
I don't even know what this means. It serves files using select() and non-blocking I/O, not CGI. It implements CGI for external programs. Perhaps the author meant that CGI was the only option for external programs.
>preliminary benchmarks against Apache and thttpd
As others mentioned, no, there are no Apache or thttpd benchmarks in the article. No doubt it's much faster than Apache and about as fast as thttpd, but experience shows that very few people care about web server speed.
>Boa (running under Linux)
I keep telling people that if they are one of the few who care about performance enough to run a specialized NBIO web server like thttpd or Boa or mathopd, they shouldn't throw away half their performance by running Linux. Use FreeBSD.
just a guess: your motherboard is heating up from the increase in activity, and something (case, heatsink, something) is expanding/contracting, causing a slight vibration
mechanicos ergo cogito
I would imagine that they are running Boa to server their own web site and it is apparently down after a good Slashdotting.
A very nice and fast web server is Hydra
[ http://hydra.hellug.gr ] . It is based on boa.
Here is some info from the site
Hydra is a high performance multi threaded HTTP web server. Unlike traditional multi threaded web
servers, Hydra uses a constant, but configurable, pool of threads, and each thread can handle several
connections by multiplexing the connections. This may remind you a non blocking server, and this is
true, but Hydra has not the killing limitation of a non blocking server, which is that they cannot use
more than one CPU. Hydra will take advantage of every available CPU in a system.
It supports many thingsa that boa doesnt, like
virtual hosts
cgi 1.1
SSL 3.0/TLS 1.0
PHP and other scripting languages.
Statistics from Netcraft:
WebServer Sites
Apache 21258824
Microsoft-IIS 10143822
Zeus 711957
unknown 496657
Netscape-Enterprise 465337
Rapidsite 411267
thttpd 322974
.
.
.
.
Boa 463
I agree that people often use dynamic pages because of the buzzword factor, not because it's the best. For instance, my web diary is only updated when I write something, not whenever somebody reads it. So a dynamic database solution would be just silly. I have a Python script to generate the HTML when I write the entries, and the server is Boa on a POS 486 running NetBSD. Slashdot that!
Give us the URL so we can try !
Since we are on the topic of web servers ... I dont supose any of you great peoples out there could help me out. I am trying to do a fairly small website on a fairly small bandwidth budget and I have to use Red Hat 8.0 and apache 2.0. Well, somehow I would like to use mod_gzip to save on the bandwidth. Is there a relatively easy way to do this?
The ultimate network admin tool needs HELP!
Boa is used in the Axis camera product line. Its also used in the Canon VBCam pan-tilt-zoom controllable camera.
Definite not new.
Alan Cox wrote in the "Linux Redux" column in May 1997 issue of Boardwatch Magazine
He ran the www.uk.linux.org, penguin.uk.linux.org and www.cymru.net on an 8 MB 486DX2-66 with no cache with Boa back then.
There is a pretty new and little known, lite web server in town, named Boa. The server can run very fast on older machines, even on embedded devices, but it is only CGI-based.
umm... if you mean "new" as in 1995 and "only CGI-based" as in optimized for static content, then sure, you might have something here. Don't poke an eye out, ok?
Skiers and Riders -- http://www.snowjournal.com
Boa is NOT NEW. thttpd used to run it on the comparisons page.
Grr. Argh.
Before this, I used to host a medium-traffic database-driven website on an old Pentium 166 with 64 megs of RAM running -- get this -- Windows 2000 Server. And it never blinked either (except when I got Slashdotted once; that really hurt).
Anyway, in an article about a great low-overhead super efficient webserver like Boa, I'd really like to see benchmarks on systems that are actually low-end, as opposed to systems that are low-end if your other server is a quad Xeon with 16 gigs of RAM.
It's nice to see Micro$oft relying on OpenSource.
(If you dont want to believe me, have a look at Netcraft)
ms
this is kinda creepy. For once I am in head of the trend. I picked up a copy of boa over a source forge a couple months ago, while looking for nifty shit to try with my linux box(used as server). I didn't install with the rest of the OS cause the ver on the CD was known to have a bug. So instead of getting the latest ver of apache, I decided to see what source forge had. I found this small webserver named boa and decided to give it a try. It is fast, real fast. except when it needs to index, then it fucking is slow like a motherfucker.
Other noteable feature of Boa, it is all in ONE proccess, instead of the multitude of child proccecees apache likes to form. I am guessing it could clog with a couple hundred/thousand users, but it works better that apache with small loads.
You forgot: to learn.
OSS is a great way to learn programming and practice your skills.
Higher Logics: where programming meets science.
This product isn't new, it was in one of the books I was reading that was published in 1998 a "Linux Complete" if I recall.
Free means no restrictions, ironic the FSF's GPL forces restrictions, isn't it? What's your definition of free?
Enjoy.
Fascinating to see something I wrote almost ten years ago turn up on slashdot as "new."
I wrote it on a dare, sort of. There weren't any single process web servers at the time and a friend of mine said "it shouldn't be that hard..." I named it boa because my pet at the time was -- wait for it! -- a boa constrictor.
Gee, that's it. Yay for open source living ten years on its own.
-- psp
-- Stop the violins!
thats one of the best ones if seen in a while. YHBT
I thought the explanation for the name was here, where boa is roughly a synonym for fat pipe -- something you need a fast server to saturate.
Escher was the first MC and Giger invented the HR department.
A quick and dirty test to see if your gzip'ing works is at: You could consider it a "gzip" validator. If the page isn't compressed, it shows you what the savings would be like if it was compressed.
-- Scott
I first came across Boa a couple of years ago because it was running
on the Axis webcam, which is a webcam running Linux in 8 MB of RAM and 2 MB of Flash ROM. It
was impressive to see such a small footprint web server being used in production for an embedded appliance, running Linux.
Just last week, I wanted to implement a custom server for my house; I have a Model 28 teletype, which I wanted to hook to the ethernet. I took
an old PC, and downloaded a copy of Boa. I then added code to it's main select() loop to service the serial port connected to the teletype. Now I have a state of the art ethernet-to-teletype gateway machine. It was easy to do because Boa is
simple and easy to understand. So people whining about which web server is "faster" are missing the point entirely; Developer's time is worth much more than CPU time in most situations. And developing using Boa's source base was the best option for what I needed to do.
Free Software! YEAH!
Yikes. Looks like "work"
.so file, adding a line in the .conf and restarting httpd and being golden
I was hoping for untaring a
I guess Ill have to do it the old hard fashioned way
The ultimate network admin tool needs HELP!
Some sites I'm familiar with have racks of 50 or more PCs running Apache or IIS just to serve a moderate traffic web site. If you do the math, you can see that two PCs can easily saturate an OC-3 line.
Both Apache and Netscape servers FORK a new PROCESS for every connection. Some others--including a compile option in Apache--start a new thread. Boa (and Jef's thttpd) don't. They're SINGLE THREADED. Just one giant "select" statement, and memory mapped files.
I think part of the problem has been poor education and lack of experience of "web developers." Many times, it would be worth the time to develop a custom high-performance non-threading/forking server to serve a site. This way you can do everything off of two PCs (in case one fails) instead of 50. We need to start encourging people with strong C++/Systems/Embedded programming experience to be our web developers, and not hire kids who's experience is limited to Java, Perl, or some proprietarty web middleware language. Imagine if you customize Boa to server the dynalic pages you need, with all assets coming out of RAM. You may pay an extra $100K or so for software development up front, but the hosting costs will recover that.
Best Buy can have you arrested