2012-12-29 2 views
6

일부 HTML 페이지를 추가해야하는 프로젝트가 할당되었습니다. 이 임베디드 시스템 (Linux CentOS 6.3 실행)에는 사용할 수있는 여분의 주스가 있지만 이미 많은 책임이 있습니다.왜 아파치 나 Nginx 등을 사용하고 있습니까?

나는 아파치를 생각했지만 부풀어 오름 때문에 그것을 던져 버렸고, 나는 Nginx를 들여다 보았다. 그냥 더 많은 '기능'을 얻는 것처럼 보이고 결과적으로 필요한 것보다 더 많은 CPU 사용량을 얻고있는 것 같습니다.

비동기 소켓을 사용하여 HTTP 프로토콜을 구현하지 않은 이유에 대해 누군가가 나를 밝힐 수 있습니까?

내 특정 요구 사항은 다음과 같습니다

  1. 는 수신 및 디코딩 가져 및 게시합니다.

  2. 요청한대로 CSS, JS 및 JPG 파일을 보냅니다.

  3. GET/POST의 디코딩을 기반으로 출력 헤더, 쿠키, 머리 및 본문 데이터.

이러한 웹 서버가 제공하는 수많은 것들이 필요하지 않다는 것을 감안할 때, 나는이 과정을 자신이한다고 가정 할 때 천진난 만합니까? 당신은 무엇을 제안하거나 경고하겠습니까?

+0

시작했다. 기존의 웹 서버만큼 완화되지 않은 보안 위험에주의하십시오. –

+4

특히 보안 노출이있는 경우 문제가 해결됩니다. 그러나 당신이 볼 수있는보다 작은 내장형 웹 서버가 있습니다. –

+0

GET 및 POST의 작은 하위 집합 만 구현해야한다면 처음부터 매우 간단합니다. –

답변

10

기본적으로 웹 서버를 사용하는 이유는 이미 테스트 된 양식에서 원하는 기능을 얻을 수 있기 때문입니다. 첫 번째 코드보다 가능성이 높으며 많은 다른 사람들이 지원합니다. 아파치와 nginx가 너무 무거울 경우 (비록 nginx가 얼마나 가볍지 만 부하가 많은 지 특징이 있지만) 특히 예상되는 부하가 매우 가벼운 경우에는 다른 옵션을 둘러보십시오. "난, 난 그냥 내가 원하는 단지 기능을 사용하여 내 자신을 쓸 것이다 제품 X의 모든 기능이 필요하지 않는 사고 :

위키에 해당하는 comparisons of lightweight web servers.

+0

내가 대답 한 이래로 5 년 동안, Node.js를 사용하는 또 다른 옵션이 등장했습니다. –

1

쉬운 함정의 전체 페이지가 "오직 한 번에 새로 발견 된 요구 사항 중 하나 인 Product X를 완전히 다시 구현해야합니다.

CentOS를 실행할 수있는 임베디드 시스템은 리소스가 부족하여 Nginx를 편안하게 실행할 수 없다는 것 (또는 아파치, 심지어 사람들은 적절한 구성 조정을 통해 잘 돌아가는 라즈베리 파이에서 실행 됨)이 의심 스럽습니다. 얼마나 많은 페이지를 실제로 제공하고 있는지에 대한 합리적인 가정을합니다. 256MB의 RAM과 같은 펜티엄 266에서 2 초 간격으로 페이지를 제공하는 몇 가지 간단한 PHP 앱을 제공하면서 문제없이 실행했습니다. 내가 기억 하듯이, 모듈화가 잘되어있어서 필요하지 않다고 생각되는 기능을로드하지 않도록 선택할 수 있습니다. 그리고 나중에 요구 사항이 변경되고 필요할 때 다시 연결하면됩니다.

리소스 소비에 정말로 관심이 있다면 임베디드 응용 프로그램 용으로 설계된 웹 서버를 살펴보십시오. 나는 Cherokee 꽤 좋은 것을 들었다. Mongoose도 유망 해 보입니다.

관련 문제