Slashdot Mirror


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."

98 of 185 comments (clear)

  1. Boa vs. Apache? by Anonymous Coward · · Score: 4, Funny


    If Boa is too constricting, you might want to switch back to good ol' Apache

    Bah dum bah!

    1. Re:Boa vs. Apache? by billybob2001 · · Score: 5, Funny

      Does it suppport Python?

      And how's the scale-ability?

    2. Re:Boa vs. Apache? by twoslice · · Score: 3, Funny

      If Boa is too constricting, you might want to switch back to good ol' Apache

      I believe that the Tag line switch was coined by Apple...

      Ellen Feiss talking about switching from Boa to OSX Server:

      I was like using this web server...

      and like it was really fast....

      and it was showing my website when...

      Boop Beep Buh Deep Bip Bop...

      It went poof! Gone! It was like... ...
      ...
      ...
      ...

      Bummer

      --

      From excellent karma to terible karma with a single +5 funny post...
    3. Re:Boa vs. Apache? by axxackall · · Score: 2
      The best web (and not only web) servers with Python support:
      --

      Less is more !
    4. Re:Boa vs. Apache? by JimCricket · · Score: 2, Interesting

      Some other small (and embeddable) web servers to check out:

      Device Management Framework: http://www.artlogic.com/dmf/
      This is a web application platform for making device management apps - say, for controlling a cable modem, printer, or industrial equipment. It supports some cool stuff including SOAP and XML-RPC.

      GoAhead WebServer: http://www.goahead.com/webserver/webserver.htm
      This server is also embeddable but not as useful as the Device Management Framework. It's fine for serving a personal web site, or as an alternative to PWS.

  2. performance info is useless by WPIDalamar · · Score: 4, Insightful

    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.

    1. Re:performance info is useless by Anonymous Coward · · Score: 3, Funny

      Nice metaphor. You can make pie out of both of them.

    2. Re:performance info is useless by inthemicz · · Score: 2, Interesting

      Or a mercedes S-class to a Ferrari, what you have to consider is if you want that speed. I dont really think that Boa has been designed as a competitor(not sure if this is the right word) to Apache. Time will tell it may take off you never know

    3. Re:performance info is useless by shinyshinyspurs · · Score: 2, Informative

      As far as I know, Boa is used in embedded linux platforms...like Axis webcams, etc. I used it about three or four years ago in webcams. It provided a low-overhead means by which a browser-based configuration tool could be delivered. I think it worked great. The features are not the point. In fact, the absence of features seems to be the point.

    4. Re:performance info is useless by tmark · · Score: 4, Insightful

      It's not useless or irrelevant if you happen to be using Apache, don't need it's full feature set, and really need performance. Or maybe you're in a situation where you're considering both, and it MIGHT be convenient to use the full Apache feature set, but might be willing to work around deficiencies to have better performance. In other words, this info is relevant any time when the user is prepared to trade-off features against performance or vice-versa, when the need for feature-set and performance is not absolute and written in stone. In any such circumstance, it's entirely appropriate to compare performance, as long as the user recognizes there are other differences.

    5. Re:performance info is useless by Anarchofascist · · Score: 2

      It's like comparing apples and pumpkins.

      Bad analogy, wrong use of cliche. If I was unfamiliar with pupmkins and had a professional interest in maintaining apples, I would certainly want to hear about all the special features that separate pumpkins and apples.

      I might even appreciate a comparison to lemons, even though I don't want to spend money on a Microsoft product.

      --
      Once more unto the breach, dear friends, once more, Or close the wall up with our American dead!
    6. Re:performance info is useless by Saint+Aardvark · · Score: 2
      Or if you've got a 486 w/16 MB of RAM, say. (Let 'er rip...I've always wanted to see how it does under a slashdotting :-)


      Works fine for me. C'mon, I can't be the only one who's set this up, right?

    7. Re:performance info is useless by LinuxHam · · Score: 3, Funny

      somehow i knew you'd be sending us to mrtg charts, but i was hoping it was going to chart eth0 traffic or something.. you know, give us a goal, something to work towards!! :)

      --
      Intelligent Life on Earth
    8. Re:performance info is useless by PunchMonkey · · Score: 3, Funny

      Or maybe you're in a situation where you're considering both, and it MIGHT be convenient to use the full Apache feature set, but might be willing to work around deficiencies to have better performance.

      Pardon me, but is sounds like you're suggesting we "use the right tool for the right job". Now I don't know if you're from k5 or where, but here on /., we don't do things that way.

      --
      I'll have something intelligent to add one of these days...
    9. Re:performance info is useless by ergo98 · · Score: 2, Insightful

      Indeed it looks like Boa was made specifically for the efficient serving of static content, where Apache, like IIS, is made in a very versatile, full featured manner. Does this render comparisons irrelevant though? Absolutely not. The reality is that most of the content that people do serve up is static content (images, CSS files, etc), and it is entirely reasonable that a server system could include a Boa or similar hyper-optimized server specifically for the static content (i.e. http://www.static.myurl.com/css/styles.css), with the Apache or IIS server being the front line real content system. Using the right tools for the specific tasks could be very beneficial and help avoid the dreaded Slashdotting while Apache or IIS is busy serving up GB of images or static HTML files.

    10. Re:performance info is useless by WPIDalamar · · Score: 2

      ah... but they use different test apps on each, so there is no valid comparison there. If they used the same testing program on both, it might mean something.

    11. Re:performance info is useless by cybrthng · · Score: 2

      They both make delicious pies.

      Thats all that matters

    12. Re:performance info is useless by johnnyb · · Score: 2

      I once used Boa in a situation where I couldn't get Apache to compile (an old HPUX machine). It ran a pirate web site at Oklahoma Baptist university, and used to run on http://obunix.okbu.edu:2000/ They wouldn't let us CompSci students have our own web space, so I just ran Boa in the background under my own user account, and told everyone how to set up their pages. It was fun :) I had to go and restart the darned thing every time the administrator rebooted, though (the administrator was not particularly UNIX smart - I played some minor pranks on him w/ X11 - tip to the smart - don't put the IP address of an open X server on the command line of a public system). Anyway, other CompSci students kept it up for a year or two after I left. It was kinda fun.

    13. Re:performance info is useless by _typo · · Score: 2
      It was fun :) I had to go and restart the darned thing every time the administrator rebooted, though (the administrator was not particularly UNIX smart

      If you had to restart the webserver manually on every reboot you're not very UNIX smart either. A cron job running every 5 minutes to see if the server is still up would have taken care of it.

      --

      Pedro Côrte-Real.

    14. Re:performance info is useless by johnnyb · · Score: 2

      We didn't have cron permissions.

      But to answer your question, no I wasn't very UNIX smart at the time.

  3. Pretty new? by Anonymous Coward · · Score: 5, Informative

    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'.

    1. Re:Pretty new? by beebware · · Score: 2, Informative

      Plus the fact it's been used in Axis web cameras for many years now (a camera with an embedded webserver, modem connection and network connection).

    2. Re:Pretty new? by murgee · · Score: 2, Interesting

      You can get it for MS-DOS too. The source and executables are available at http://www.fdisk.com/doslynx. If you use a multitasker in DOS you can even run it along side WordPerfect. ;-)

      --
      mrg
  4. Odd comparison? by FreeLinux · · Score: 4, Interesting

    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.

    1. Re:Odd comparison? by PD · · Score: 2

      Not true at all. Boa is much faster than apache on teeny hardware serving static pages. I've got it running on my own server (link in sig) and I doubt that the thing can be slashdotted easily. The pages are small, and text only for the most part.

      The bottleneck that I have is my DSL line uplink speed. My webserver can handle several connections per second, and it's only a Celery 300A with 64 megs of RAM.

  5. uh by GigsVT · · Score: 5, Informative

    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.
    1. Re:uh by kaisyain · · Score: 3, Interesting

      Very true. Several years ago when I was in college I ported Boa to DOS. At the time I thought it was the world's first DOS httpd but was later informed someone had beaten me to the punch. At the time Corel or someone were releasing their free DOS replacement and talked to me a couple of times about including Boa for DOS but eventually their project died.

    2. Re:uh by PD · · Score: 2

      Boa definitely is a nice little program. I use it on my own website (link in my sig) and have no complaints. It doesn't do a lot, but it does it well. The biggest asset that it has in my opinion is that since it's so small and built with security in mind, I can feel good about running it. It will run CGI scripts, so there's always an opportunity to break security there.

  6. there are lots of options by night_flyer · · Score: 3, Informative

    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...
  7. No comparisons by mgkimsal2 · · Score: 3, Interesting

    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. :/

  8. fnord! by MisterP · · Score: 5, Informative

    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.

    1. Re:fnord! by the_danielsan · · Score: 3, Informative

      URL should be http://www.fefe.de/fnord/

      (trailing slash)

    2. Re:fnord! by frankie · · Score: 2
      URL should be http://www.fefe.de/fnord/ (trailing slash)

      That is not a very good endorsement of fnord. I'd rather use a web server that knows how to redirect "GET /foo" to "GET /foo/" transparently with http headers.

  9. Still slower than ZWS by fastlink · · Score: 5, Interesting

    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!

    1. Re:Still slower than ZWS by Moloch666 · · Score: 5, Insightful

      For the price to performance ratio apache wins.

      --
      Understanding is a three-edged sword. -- Kosh Naranek
    2. Re:Still slower than ZWS by Virtex · · Score: 3, Insightful

      I tried to verify that, but got a division by zero error when calculating Apache's performance/price ratio. I guess it just wasn't meant to be known.

      --
      For every post, there is an equal and opposite re-post.
    3. Re:Still slower than ZWS by YoungHack · · Score: 3, Funny

      That's because you're doing it wrong. You compare by cross multiplying. Instead of (featuresApache)/(priceApache) vs. (featuresOther)/(priceOther) you do (featuresApache)*(priceOther) vs (featuresOther)*(priceApache).

      And Apache wins.

    4. Re:Still slower than ZWS by TeknoHog · · Score: 2

      Zeus is not free. If you compare opensource httpds, Boa is one of the faster ones (though not the only of its kind).

      --
      Escher was the first MC and Giger invented the HR department.
  10. Excellent for special UID use. by nutcracka · · Score: 5, Interesting

    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!

  11. Better yet... by vasqzr · · Score: 2, Funny


    How well does it fork?

  12. I'm unimpressed by Anonymous Coward · · Score: 3, Informative

    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 ?

    1. Re:I'm unimpressed by __past__ · · Score: 3, Funny

      Bah, PHP? Try awk, Bash or Postscript for a thrill!

    2. Re:I'm unimpressed by Christianfreak · · Score: 2

      PHP? Good grief! When did PHP suddenly become the end all be all language for writing everything? PHP is designed to make dynamic webpages and IMHO it isn't exactly the greatest at doing that. (Not a troll, good reasons for believeing that, reply if you want to know why).

    3. Re:I'm unimpressed by passthecrackpipe · · Score: 2

      ok, i'll bite. What's wrong with PHP?

      --
      People who think they know everything are a great annoyance to those of us who do.
    4. Re:I'm unimpressed by Christianfreak · · Score: 2

      offtopic but who cares I have karma to burn. Let me qualify this statement by saying that I do know and use PHP, its a part of my job. I'll also say that I know Perl and I think Perl is better so it probably makes me somewhat biased.

      Name space, name space, name space. That's what's wrong with it. I get really tired of writing function names that_seem_to_go_on_forever(). I mean come on. What is the point of array_push() why can't it just be called 'push()'? I know it works on an array!

      Interpolation. Sometimes it works sometimes it doesn't its sort of half done. I can't count how many times my PHP program has crashed because I dared to put a variable inside double quotes. The behavior appears to be almost random.

      Everything feels hacked, this goes back to the namespace issue. There is no logical way to extend PHP so new functions are just thrown into the core language. Many times they act differently than other similar functions (sorry I can't think of an example off the top of my head). Its like some people decided they wanted 'x' function and just threw it in without regard to its implementation. Things don't seem to be reused just new things thrown in. Like why can't we have a standard set of database functions where the database type you are using is declared? Nope, instead we have a whole set of mysql_* functions for MySql and another whole set of pg_* functions for Postgre.

      And finally everytime there is a new release there is some change to the core of the language. So they have to maintain cruft to be compatable and things don't break. If they would improve what they have instead of constantly adding new things this problem would go away.

      Other annoyances (mostly my opinion): Three ways to read variables from a form but still hard to make a program that can accept GET or POST method with the same variable names.

      (item1,item2,item3) is not treated as a list or an array. I can't do ($fieldname,$fieldname2) = mysql_fetch_row() ... nope I have to put them into a temporary array and set them one by one :(.

      Regexes use functions ... this is extremely annoying and there are at least two (three?) different regex sets, plus functions that duplicate what regexes can do!

      Global variables, again my opinion but I would rather declare my varibles local rather than having to declare them global. It wouldn't be so bad if I could declare my global variables once at the top of the program but no .. i have to redeclare them global in each function I'm going to use them in.

      CPAN -- for all of Perl's faults it got CPAN right. PHP needs a standard way of adding modules to its installation (so they can be used system wide) and a good place to store them. You don't know how difficult it is to write a MIME complient message in PHP.

      Finally I think PHP backwards... PHP is a language designed so that the data defines the program. Easy to slap together but difficult to maintain and very difficult to reuse code (I have to make tons of changes to the HTML page). I prefer to program so that my code defines my data. And I can give it new data to achieve new things or looks for a page or whatever ... PHP can do that its just not a simple to do as it is in other languages.

      My two cents :)

    5. Re:I'm unimpressed by Christianfreak · · Score: 2

      Thanks for the note. Now I'll just put it under a personal annoyance that I have to call a function to do that (I still think that's braindead) :)

    6. Re:I'm unimpressed by horza · · Score: 2

      Ok, to continue offtopic for a couple of seconds... here is my 2c (and I'm not criticising you in *any* way, or saying you are wrong, this is _my_ experience):

      What is the point of array_push() why can't it just be called 'push()'? I know it works on an array!

      You know it works on an array because it's called array_push :-P

      Nope, instead we have a whole set of mysql_* functions for MySql and another whole set of pg_* functions for Postgre

      You can always use ADODB.

      (item1,item2,item3) is not treated as a list or an array. I can't do ($fieldname,$fieldname2) = mysql_fetch_row() ... nope I have to put them into a temporary array and set them one by one :(

      Well I've never used that syntax in *any* language! (must be a Perl thing?)

      It wouldn't be so bad if I could declare my global variables once at the top of the program but no .. i have to redeclare them global in each function I'm going to use them in.

      This is down to personal taste. I much prefer having to redeclare in each function, as it's a lot safer since you don't have to explicitly declare local variables.

      Personally, PHP does the job for me. It has its short-comings, but for small-medium size web sites you can't beat it imho.

      I still wouldn't write a web-server in it though :->

      Phillip.

    7. Re:I'm unimpressed by mackstann · · Score: 2
      the CPAN of php would be PEAR (pear.php.net)

      one of the inconsistent functions you described is strstr(). most functions that search for something in a string (like ereg* and preg*) have the arguments set up so that the needle is first, haystack last. so you get used to using them like this('findthis', $inhere), but then with strstr you go strstr($whyisthisfirst, 'wtf that makes no sense')

      just my own little two cents, keep in mind i like php and i love doing all kinds of neat shit with it like this and these and this.

      i've played with perl a tiny bit, and while there are things i like about it (=~ comes to mind, also the general shortness of functions and constructs versus php's long_ass_function_names() like parent post mentioned), it does feel very strange - and i question the usefulness (to me). i can pretty much do anything in php that i can think of, the language doesnt hold me back very much or at all. i can write shell scripts in it too - of course people say "no no!! php is for webpages!!", but it's as fast as anything else, and i'm familiar with it so i can be very productive.

  13. Re:Disappointing by leoboiko · · Score: 2, Insightful

    It's called "freedom of choice".

    --
    Prescriptive grammar:linguistics :: alchemy:chemistry. Stop being a nazi and learn some science.
  14. Let me put in a plug for bozohttpd by revision1_1 · · Score: 5, Informative

    ...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.

  15. Anything in between by Anonymous Coward · · Score: 2, Interesting

    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?

    1. Re:Anything in between by MORTAR_COMBAT! · · Score: 3, Informative

      You might try thttpd from ACME Labs. I've used it (also Boa) on several 486 and early pentium machines.

      --
      MORTAR COMBAT!
    2. Re:Anything in between by pyite · · Score: 2

      Erm, since when does Apache need a 200 MHz processor? I've run it on a 486 with no problem. It'll probably run on a 386 with no problem either.

      --

      "Nature doesn't care how smart you are. You can still be wrong." - Richard Feynman

  16. Re:Disappointing by peterb · · Score: 5, Insightful

    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?


    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.


    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".


    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.


    I am doing my part for our revolution, people.


    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?
  17. Re:Disappointing by rmolehusband · · Score: 5, Insightful
    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?

    Maybe...
    • For the fun of it!
    • To see if we can!
    • To hack, tinker, improve and innovate?

    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
  18. Re:Disappointing by baryon351 · · Score: 3, Insightful

    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.

  19. This comes down to.. by deppe · · Score: 3, Interesting

    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.

    1. Re:This comes down to.. by Erasei · · Score: 4, Insightful
      I agree, and disagree.


      I agree that this will never replace Apache. However, from what I have read about it so far, it was never meant to.


      I disagree on the part that this is "dead". Just like Linux, web servers are going in two different directions. The first, and most common is serving web pages for web sites as we think of them today. Public sites either giving information or selling a product.


      There is a new market emerging though, that Boa will be well suited for. The advanced-embedded market. I am not talking PIC processors or having a web server in a lightbult, but the more advanced devices that need a slightly more advanced webserver, without needing things like virtual hosting. This type of web server should do very well on home routers and firewalls and such devices.

      --
      visit my free wallpaper collection, wp.erasei.com
    2. Re:This comes down to.. by Richard+W.M.+Jones · · Score: 2, Informative
      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?

      <plug>

      Very true. That's why you need a web server like rws which is tiny, and loads C-based CGIs into memory, and has a full database layer.

      </plug>

      Rich.
    3. Re:This comes down to.. by horza · · Score: 2

      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?

      My first thought is for serving images. Our server is quite heavily loaded, and it seems a waste that Apache is being used to serve up images (85% of our traffic) which don't use any of its capability.

      Phillip.

    4. Re:This comes down to.. by cloudmaster · · Score: 2

      ...And it'd better not be another *red* Fairlane. ;) How come no one ever paints them blue or green?

      BTW, just to keep this vaguely on-topic, I've used boa for the remote upload / setup interface server in my home-brew car mp3 player since 1998. "A new webserver", bah.

  20. threads v. multiplexing by MORTAR_COMBAT! · · Score: 4, Interesting

    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!
    1. Re:threads v. multiplexing by ameoba · · Score: 2
      --
      my sig's at the bottom of the page.
    2. Re:threads v. multiplexing by Salamander · · Score: 2

      See also my recently-posted list of links to articles on my own website discussing these very matters.

      --
      Slashdot - News for Herds. Stuff that Splatters.
  21. Re:Apache threads by Random+Walk · · Score: 2

    "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.

  22. In praise of CGI by melonman · · Score: 2

    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
    1. Re:In praise of CGI by melonman · · Score: 2

      Why bother with writing your own HTML to disk?

      Referencing? Some dynamic content seems to be virtually impossible to reference effectively. Also, if each page changes once a month on average, your solution still runs the db about 6000 times more often than mine. And if the database interface is public, people can try to break it, whereas it is hard to make a page of static html malfunction.

      --
      Virtually serving coffee
    2. Re:In praise of CGI by cr@ckwhore · · Score: 2

      I'm sensing a bit of misunderstanding about what CGI actually is...

      CGI stands for "Common Gateway Interface". It provides a standard by which http servers can communicate with external programs... basically, anything other than static HTML files is "CGI".. .php, perl, asp, exe, etc...

      That being said, your post makes no sense.

      --
      Skiers and Riders -- http://www.snowjournal.com
    3. Re:In praise of CGI by melonman · · Score: 2

      CGI stands for "Common Gateway Interface".

      Yes, but the common usage of the word has moved on a bit. Just as, although PHP stands for Personal Home Page, it gets used for non personal websites, and not just on home pages. I think my use of CGI to mean 'CGI scripts in languages such as Perl' is pretty common practice.

      That being said, your post makes no sense

      True, but in that case half the posts on this topic and some of the original article are a bit hazy too. When the posting to which I replied says 'CGI is as dead as Ultrix', because of the wonders of dynamic content, he is either talking rubbish or using CGI in the same way as me.

      --
      Virtually serving coffee
    4. Re:In praise of CGI by Istealmymusic · · Score: 2

      Your usage of CGI, Sir, is wrong. Fucking newbie.

      --
      "The lesson to be learned is not to take the comments on slashdot too literally." --Vinnie Falco, BearShare
    5. Re:In praise of CGI by melonman · · Score: 2

      I'm sure you're right, but I seem to have a wider range of adjectives at my disposal :-)

      --
      Virtually serving coffee
  23. /.ed by CowboyMeal · · Score: 2, Insightful

    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.
  24. Stress Test by bytesmythe · · Score: 5, Funny

    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
  25. rws by Richard+W.M.+Jones · · Score: 2, Informative
    Or rws which let's you use C to write CGI scripts that are loaded into the server at run time (for extreme speed), and has database access, and hence is much more useful for dynamic webpages.

    Rich.

  26. slashdot effect and Boa by Anonymous Coward · · Score: 3, Informative

    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.

    1. Re:slashdot effect and Boa by Russ+Nelson · · Score: 2

      Thanks, Larry. Remember that I offered to run boa for boa.org after I switched to binding Apache on a per-IP address basis? I'm still happy to do that. It wouldn't have helped, though. boa.org is only a 166Mhz machine with 64MB RAM connected via 2 T-1's. Hardly up to even a minimal slashdotting.
      -russ

      --
      Don't piss off The Angry Economist
  27. Yeah, we only need one webserver, by slycer9 · · Score: 3, Insightful

    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.
  28. Re:In praise of static by TeknoHog · · Score: 2
    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!

    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.
  29. Pretty nice server... by mindriot · · Score: 5, Funny

    ...with an especially nice screen shot... :-)

    1. Re:Pretty nice server... by KnightStalker · · Score: 2

      What??? That's a blatant ripoff of the Apache interface! :-)

      --
      * And remember, it's spelled N-e-t-s-c-a-p-e, but it's pronounced "Mozilla."
  30. Where do people get stuff like this? by jefp · · Score: 5, Informative

    >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.

    1. Re:Where do people get stuff like this? by raytracer · · Score: 2


      Indeed, the original article seems to have been written by someone who literally fell out of the sky and decided that he needed to write a review of webservers.



      I'm not sure about how few people know about boa and thttpd, but neither of them are new and both of them make excellent webservers. I ran two virtual hosted (admittedly low traffic) websites using thttpd for years on a P5 133 with only 32M of memory. It's dead simple to set up,
      efficient and fast. I also evaluated boa, and found it to be excellent as
      well, I picked thttpd because I liked its virtual hosting a tiny bit better and thought I might make use of throttling at some point.



      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.


      I do run FreeBSD too. While I'm not sure about
      the relative speed of both, I wouldn't dismiss
      Jef's comment out of hand either, he's done
      benchmarking on a wide variety of systems as part
      of his thttpd work.


  31. Hydra: a Boa based web server by Anonymous Coward · · Score: 5, Informative

    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.

  32. Web Server Survey - October 2002 by gbitten · · Score: 5, Informative

    Statistics from Netcraft:

    WebServer Sites
    Apache 21258824
    Microsoft-IIS 10143822
    Zeus 711957
    unknown 496657
    Netscape-Enterprise 465337
    Rapidsite 411267
    thttpd 322974
    .
    .
    .
    .
    Boa 463

    1. Re: Web Server Survey - October 2002 by jefp · · Score: 2, Insightful

      Yeah. :-) However, even I admit that if Netcraft counted by IP address instead of by virtual hostname, thttpd's share would be much lower. There are a few huge ISPs that run it - a single thttpd process on a single CPU serving tens of thousands of hostnames. This is nice, but it's not really comparable to Apache's millions of real sites.

  33. Speaking of Web Servers... by rosewood · · Score: 2

    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?

    1. Re:Speaking of Web Servers... by horza · · Score: 2

      If running PHP scripts, add the follow lines at the start:
      ini_set('zlib.output_compression', 'On');
      ini_set('zlib.output_compression_level', '3');

      It will gzip your pages as they leave the server. To save on cpu, I cache my HTML pages... then also system() call to gzip it in the same dir. I then:
      if (strstr($HTTP_ACCEPT_ENCODING, 'gzip'))
      { serve_gzipped_file; }
      else { serve_uncompressed_html }
      It means the server doesn't need to gzip the file on every single request.

      Phillip.

  34. Re:Don't forget D. J. Bernstein's publicfile by passthecrackpipe · · Score: 2
    Hooray! Another "Lets have a flamewar about Bernstein thread"!! OK, I'll start it off this time:

    Bernstein is an asshole and his software sucks.

    --
    People who think they know everything are a great annoyance to those of us who do.
  35. Re:Disappointing by Abcd1234 · · Score: 2

    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".

  36. "Medium-range" system, ha! by Wonko42 · · Score: 4, Insightful
    I spurted Coke out my nose when I got to the benchmarking portion of the article, where the author calls his 700MHz Duron system with 384MB RAM a "medium-range" system. Ha! Medium-range maybe if you're talking about big fat corporate servers. I host The Uptimes Project, which handles over a million database-driven dynamic page hits per day (including pages that generate large graphs on the fly), plus several other medium-traffic sites, all on a 350 MHz Pentium II running Apache under FreeBSD. This little server handles all that traffic without even blinking.

    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.

  37. Re:oh shit by TeknoHog · · Score: 2
    > For once I am in head of the trend.

    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.
  38. Forgot one by naasking · · Score: 2

    You forgot: to learn.

    OSS is a great way to learn programming and practice your skills.

  39. I wrote boa... by entropy42 · · Score: 3, Interesting

    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!
  40. Interesting... by TeknoHog · · Score: 2
    Well, first of all, thanks for the great server! I'm currently running it to serve my homepages on a 486, though I first used it about three years ago.

    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.
  41. Boa is a great platform for embedded servers by hqm · · Score: 2

    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!

  42. Re:Speaking of Web Servers... mod_gzip by rosewood · · Score: 2

    Yikes. Looks like "work"

    I was hoping for untaring a .so file, adding a line in the .conf and restarting httpd and being golden

    I guess Ill have to do it the old hard fashioned way

  43. Re:Surprisingly, www.boa.org is running Apache by Russ+Nelson · · Score: 2

    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
  44. Re:Boa is used for camera appliances.. by sg_oneill · · Score: 2

    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.