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.
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.
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?
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 ?
It's called "freedom of choice".
Prescriptive grammar:linguistics
...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?
Wait a minute, who is "we"?
I mean, no offense, but who the hell are you to tell a programmer what she should work on? Oh wait, did I say "no offense?" I meant "plenty of offense." As long as the Boa guys are enjoying what they're doing, more power to them. Now, maybe you're whining about Slashdot writing an article on it, but that's hardly the Boa guys fault.
And, frankly, you sound like the type of person that's going to find something irritating to whine about no matter what.
Well, maybe some of us want to do work because it's fun, and we're interested in it, rather than because some random internet bozo thinks he 'needs' it.
Yeah, I can see that -- you're already trying to impose your own narrowminded "managerial" (your label, not mine) viewpoint on the people that are trying to get work done, and touting your own superiority. Whooooo, how innovative and revolutionary.
So why don't you just crawl back into your hole and write whatever code you want to, instead of whining that other people are working on things that don't benefit you personally?
Maybe...
OK, so a lot of open source projects start up to fill a gap and a lot of open source projects start up to replace a proprietary or expensive solution, but a lot start up just to try and do something in a new way or innovative way, to experiment or to learn. It's the hacker way.
OS is so productive becasue of this hacker attitude, stifle it at your peril.
Reginald Molehusband. Edinburgh, Scotland
Partly because of the fun of it, but to combat bloatware a culture of making things small, in a practical sense, needs to exist. Apache may be size X, and if the belief is embedded in coders that size X is the minimum to do a job, it won't even be -considered- by the majority that things could be done more efficiently
Even knowing a webserver exists that is 1/10th the size and runs in 1/10th the memory can give pause to thought, and keep the knowledge open that things can always be made smaller. In 1990 the entire internet was run on machines rarely quicker or more powerful than 386s or 68030s - it would be sad to see a culture of "You can't have a server online that's under 500mhz and a gig of ram" develop - without tiny coding projects like this, that's all too possible.
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.
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!
"internally multiplexes the connections" usually
means a select(2) loop in a single-threaded server
rather than having a separate thread or subprocess
for each connection.
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... :-)
>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.
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
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!
Bernstein is an asshole and his software sucks.
People who think they know everything are a great annoyance to those of us who do.
This is probably a troll, but...
Did it ever occur to you that maybe, just maybe, the Boa folks don't give a damn about your so-called "revolution"? That maybe they're writing code because they want to? Because the *like* to? Because it's *fun*? Frankly, this whole talk of "revolutions" and the like sickens my stomache and degrades the old hacker mentality of doing stuff because it's enjoyable and interesting. Hell, I've written plenty of code and released it for free, but I don't do this because I think I *should*. I do it because I hope it might be useful to someone, and because I enjoy creating new things, and learning in the process. But now, we have people like you, who attempt to politicize this so-called "movement". Well, I say f*ck your movement. I'll work on what I want to work on, and code what I want to code, and if people find it useful, great, and if not, well, so it goes. But I'll be damned if I'll write code because someone else feels I should for the "greater good".
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.
Hmm.. just because it's on /. doesn't mean it's suddenly trendy. Use
the tool that's the best for the job, not the one that is trendy. In
fact, by going the Linux way you've already gone against the
mainstream OS which is Windows, might try and keep up the attitude.
Besides, I used Boa over three years ago so I'm more trendy than you! ;-)
Escher was the first MC and Giger invented the HR department.
You forgot: to learn.
OSS is a great way to learn programming and practice your skills.
Higher Logics: where programming meets science.
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!
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.
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!
Yup. I offered to Larry to run boa specially for boa.org, but he said "Thanks; I'm already asking enough of you just to host the website for me."
-russ
Don't piss off The Angry Economist
Indeed it is used on the axis cameras.
for a mining job a while back we had to do some development due to a busted panasonic pan tilt head driver in the axis box. Unfortunately AXIS where not forthcoming in the driver code (grrr) so we had to wangle our own. Ladies and gentlemen;- I wrote the driver in PHP(!) , and consequently the damn boa server directly controled the servos via the serial port on the unit.
Most completely impressed (except for the closed source axis driver... grrr).
Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.