카테고리 없음

[번역] Boa Web Server에 대한 개요

벅스바니 2010. 3. 1. 23:25
원문:http://www.osnews.com/story/2217/An_Overview_of_the_Boa_Web_Server

Boa는 가수이름이 아닙니다.
Linux에서 사용하는 가장 간단한 형태의 웹서버로, 현재 mini2440에도 포팅되어 있습니다.
이에 대한 이해를 돕기위해 간단히 번역해서 올립니다.
(History 부분은 시간관계상 아직 미번역입니다.)


Boa Web Server

Boa는 싱글태스킹 HTTP 서버입니다. Boa는 자기 자신의 카피로 분기하거나, 개별적인 접속 입력에 대해 스레드를 만들지 않고, 내부적으로 접속을 다중 분할 합니다.
Boa는 CGI 프로그램, 자동 디렉토리 생성, 자동 파일 압축 등 별도의 프로세스로 시행되어야 하는 프로그램으로만 분기합니다.
Boa의 기본적인 디자인 목표는 "악의의 유저로부터 전복되지 않는", "세부적인 억세스 컨트롤과 암호회된 통신"을 기저로 한 "속도와 보안"입니다.
Boa는 다양한 기능을 가진 서버를 의도하지 않습니다. 만일 이러한 것을 원한다면 Boa 는 아마 올바른 선택이 아닐 것입니다.

소개: Boa란?

Boa는 C로 작성되었고, 이식성있는 코드베이스를 제공하기 위해 GNU autoconf 시스템을 사용합니다.
이는 UN*X의 풍미와는 많이 다르고, 많은 부분에서 약간씩 수정된 형태로 완전히 새롭게 실행된다고 보고되었습니다.
현재, Boa는 리눅스 플랫폼상에서 개발이되고있으며, 이는 레드햇, 데비안 GNU/Linux, Gentoo Linux의 다양한 배포판으로 개발되었습니다.
추가로 Boa는 FreeBSD 4.6에 포팅되어 사용가능합니다.
Boa는 또한 OpenBSD, HP/UX, Solaris 7과 8, AIX 그리고 Cygwin 윈도우 환경에서도 조차 실행된다고 보고되었습니다.
초기의 Boa는 DOS상에서도 작동하도록 포팅되었습니다.

Boa는 특히 고정 문서 - 아무런 추가 작업 없이 디스크에서 바로 제공되어 지는 - 등의 웹 서빙의 종류로는 뛰어납니다.
비록 100Mbit 이더넷 이전에 설계되었지만, Boa는 100Mbit 이더넷 연결을 보편적인 하드웨어에서조차 쉽게 포화시킬수 있도록 작동합니다.
Boa는 이러한 하드웨어가 쉽게 가용하도록 설계되었고, 리소스를 효과적으로 사용하도록 특별히 설계되었습니다.
사실, Boa는 가장 오래된 활발하게 개발된 웹서버의 하나입니다.


-------------------------------------- 원문 --------------------------------------------------------------------

posted by Jon Nelson on Mon 25th Nov 2002 02:49 UTC

Boa is a single-tasking HTTP server. Boa does not fork a copy of itself or spawn a thread to handle each incoming connection, but rather internally multiplexes the connections. Boa only forks for CGI programs, automatic directory generation, and automatic file gunzipping, each of which must be a separate process. The primary design goals of Boa are speed and security, in the sense of "can't be subverted by a malicious user", not "fine grained access control and encrypted communications". Boa is not intended as a feature-packed server; if you want one of those, Boa is probably not the right choice.

Introduction: What is Boa?

Boa is written in C and uses the GNU autoconf system to provide a portable code base. It has been reported to run out-of-the-box on many different flavors of UN*X, and with minor tweaking on many more. Currently Boa is developed on a Linux platform, on a variety of distributions, most notably RedHat Linux, Debian GNU/Linux, andGentoo Linux. Additionally, Boa is available under FreeBSD 4.6 as a port. Boa has also been reported to run on OpenBSD, HP/UX, Solaris 7 and 8, AIX, and even the Cygwin environment for Windows. An earlier release of Boa was even ported to run under DOS!

Boa excels at certain types of web serving, notably static d0cuments, which means d0cuments served directly off of disk, without involving additional processes. Though desgined before 100Mbit ethernet, Boa can easily saturate 100Mbit Ethernet links on even modest hardware. Boa was designed before such hardware was readily available, and was specifically designed to use resources efficiently. In fact, Boa is actually one of the oldest actively developed web servers!


History

Boa was written sometime in the early 1990's by Paul Philips. More accurately, the first announcement I could find regarding Boa dates back to September 20, 1995, in which Paul announces v0.90 of "The Boa webserver''. Unfortunately, I cannot locate any release announcement prior to this, although Boa was undoubtably under development earlier than this. Shortly thereafter version 0.91 was released.

In 1996, I encountered Boa in my quest for a lightweight http server that fit the following rigorous criteria: it must be able to run well on the modest hardware I had available and I should be able to look at the code and at least pretend that I knew what was going on. The hardware I had available was a Zeos Intel i386 with 2MB of RAM and 120MB of very slow drive storage. After some initial research, I downloaded and tried to compile several servers, including Apache, NCSA, thttpd and Boa (version 0.91). I wasn't able to get Apache to run in a satisfactory manner; I felt it was much too heavy for the hardware. NCSA ran slowly, and with thttpd and Boa I encountered various bugs. I resolved initially tried fixing some of the bugs, but I wasn't able to understand thttpd's code enough to be able to effectively contribute. When I turned to Boa, I immediately felt that the code was much cleaner. After some time, I felt I was successful in my attempted bug fix, so I wrote Paul Philips. He replied that two others had taken 0.91, continued development and released 0.92, which he hadn't even seen yet. I took the information he provided me, and contacted Larry Doolittle. I contributed a patch or two, and gradually became more involved.

Version 0.92 was the next major release, and was the first by someone other than Paul. Larry Doolittle handled this release. Version 0.92 went through several iterations, and the ``official'' release, 0.92o was on December 23, 1996. There were a number of point releases after that, finally ending at 0.92q. Today, you can find still many variants of the 0.92 release series in various hardware and software devices.

Version 0.93 was released shortly thereafter, and was treated as the "development'' version for a long time - more than four years, in fact. Finally, on January 17, 2000 version 0.94 was released. As was the usual case, 0.94 went through a few minor point releases, but solidified very nicely.

Version 0.94 represented an enormous amount of work, and many hundreds of CVS commits, but the result was a significantly faster, cleaner, and more robust webserver.


Table of contents
  1. "Introduction, History"
  2. "Performance"
  3. "More Performance, Conclusion"