2011-01-15 7 views
0

내 응용 프로그램에 대한 간단한 http 서버를 구축해야합니다. 기본적으로 포트를 수신하고 요청, https 및 기타 기능에 대한 상태 정보를 출력하는 서버입니다. 그러나 나는 C++에서 이와 같은 것이 존재하는지, 리눅스와 오픈 소스에 대해 먼저 알고 싶습니다.C++ (C가 아님)의 경량 HTTP/HTTPS 서버

그런 프로그램을 아는 사람이 있습니까?

감사합니다.

편집 : 높은 하중을 지원할 수 있어야합니다.

+0

의 저자 해요 그냥 독자가 혼동하지 않도록 "고 load__을 __no 요청에"라는 부분을 수정. – jweyrich

+0

@jweyrich : 편집, 조언 해 주셔서 감사합니다. 혼란을 드려 죄송합니다. 즉, 응용 프로그램이 처음에는 부하가 높지 않지만 부하가 높을 수 있어야합니다. – NeDark

+0

예상되는로드는 무엇입니까? 초당 100 클라이언트? 1k/s? 10k/s? 100k/s? –

답변

6

부스트를 사용할 수있는 경우 asio 라이브러리는 http example을 제공합니다. 그것은 SSL을 사용하지 않지만, asio는 매우 OpenSSL을 사용할 수 있습니다 easily.

+2

새로운 요구 사항을 감안할 때, Asoll은 epoll (Linux 기반), kqueue (BSD 기반) 및 Overlapped IO (Windows)와 같은 비동기 메커니즘을 활용할 수 있음을 언급하는 것이 좋을 것 같습니다. 기타 정보 [here] (http://www.boost.org/doc/libs/1_45_0/doc/html/boost_asio/overview/core/async.html). – jweyrich

0

"C++ 웹 응용 프로그램 프레임 워크"에 대한 빠른 Google 검색은 CppCMS 및 WT라고하는 다른 것을 보여줍니다. 그것은 당신을 시작할 수 있습니다.

샘이 이미 대답했듯이 : boost.asio는 필요에 따라 충분할 수있는 HTTP 예제를 제공합니다. 실제 HTTP 요청 처리는 실제로 놀랍게 복잡합니다. http://webmachine.basho.com/diagram.html

0

HTTPS를 사용하지 않는 경우 정적 파일 서버를 작성하는 데 약 2 시간 정도 소요됩니다.

+1

고성능이 아닙니다. – jweyrich

+0

고성능은 요구 사항이 아닌 것 같습니다. 질문에 "고부하가 없습니다". –

+0

@Fred Nurk : 이제 결과 : P – NeDark

0

thttpd를 참조하십시오. 단일 CPU를 가진 모든 컴퓨터에서 가장 빠른 오픈 소스 파일 서버.

2

당신은 내가 다음을 제안 높은 부하를 처리하는 경우는이 Lighttpd, Nginx에 또는 (순서대로) 아파치 등으로 오는 모든 케이크와

  1. 사용 적절한 웹 서버를.

    정적 파일을 제공하고 응용 프로그램을 처리하는 것이 좋습니다. 그리고 그들은 매우 가볍습니다. CppCMS - -

  2. 적절한 웹 프레임 워크를 사용하여 C++에서 응용 프로그램을 작성하는이 FastCGI를하거나 (이 순서대로) SCGI 프로토콜을 통해 서버에 높은 부하
  3. 연결 웹 응용 프로그램을 위해 설계되었습니다.

면책 조항 : 나는 CppCMS