동적 컨텐츠를 제공하는 경량 웹 서버가 있습니까?


21

Nagios 서버로 이미지를 만들고 있습니다. 라즈베리 파이의 문제점 중 하나는 라즈베리 파이의 메모리가 매우 작다는 것입니다. 따라서 표준 인터페이스 대신 php-apc 기반의 경량 인터페이스를 사용합니다.

가벼운 웹 서버를 사용하는 것이 어떤지 궁금합니다.

PHP를 수행하고 SSL을 제공 할 수있는 최소 웹 서버를 고려하고있었습니다. Apache2 또는 Nginx를 생각하고있었습니다. 내용이 동적이기 때문에 Apache가 여전히 Nginx보다 성능이 우수하다고 생각합니다.


1
Nginx는 Apache보다 성능이 뛰어납니다.
Alex Chamberlain

정적 콘텐츠에서는 @AlexChamberlain이지만 동적 콘텐츠에서는 그렇지 않습니다.
Lucas Kauffman

5
청구. 성능의 의미에 따라 다릅니다. Nginx는 적은 메모리를 사용하고 누출을 줄이며 (정적) 파일을 더 빨리 제공합니다. 제 (제한적이지만 기술적 인) 경험에서 동적 컨텐츠는 Apache보다 빠르거나 빠릅니다. Nginx의 메모리 프로파일이 주어지면 Raspberry Pi에서 훨씬 더 잘 수행됩니다. 여기서는 아니지만 Apache의 장점은 더 안정적이며 숙련 된 기술자가 있다는 것입니다.
Alex Chamberlain

nginx 나 lighttpd가 관리 할 수없는 매우 복잡한 구성이 없다면, 256MB에서 Apache를 고려하지 않을 것입니다.
John La Rooy

답변:


17

여기서 실제 질문은 "Apache가 제공하는 모든 기능이 필요합니까?"입니다. (또는 더 중요한 것은, "이 기능들을 위해 메모리를 기꺼이 사용하겠습니까?")- 매우 벗겨진 Apache + mod_perl 또는 mod_php를 사용자 정의 컴파일 하여 Nagios 웹 인터페이스 (또는 Über-Stripped apache 단지 perl CGI를 실행하지만) 최소한의 형태 일지라도 아파치는 아마도 같은 작업을 수행하기 위해 nginx보다 더 많은 메모리를 필요로 할 것입니다.

100 % 확신을 가지려면 베이크 오프 (nginx와 Apache를 모두 컴파일하고 RAM을 적게 먹는 것을 확인하십시오)를 원할 수도 있지만 "정상"서버에 대한 나의 경험에 따르면 nginx는 아마도 메모리 부족에 더 나은 선택이라고합니다 구성 : Apache의 유연성을 포기하지만 어쨌든 필요하지 않은 경우 (대부분의 사이트 는 필요하지 않음 ) 차이를 느끼지 못할 것입니다.


성능 (시간) 현명한 당신은 당신의 웹 서버에 의해 제한 될 것입니다 의심합니다-당신이 아마 페이지 엔진을 전달하는 서버 엔진의 성능이 중요한 곳에서 충분한 양을하고 있다면 모든 고안된 벤치 마크 Raspberry Pi를 굽는 것입니다 (실제로 얼마나 많은 사람들이 모니터링 데이터를 한 번에 볼 수 있습니까? :-).
공간이나 시간에 따라 시스템을 최적화 할 수 있다는 공리가 많지만 둘다는 절대 아닙니다. 라즈베리 파이 공간에서는 아마도 제약 조건 일 것입니다.


요즘 Apache가 Nginx보다 훨씬 강력 하다는 것에 회의적입니다 .
Alex Chamberlain

@AlexChamberlain 내 게시물을주의 깊게 읽으면 powerful정의되지 않은 용어 때문에 단어를 사용한 적이 없습니다 . 나는 말했다 flexible(베어 뼈 코어 서버가 요구를 충족하도록 구성 할 수있는 방법을 여러 가지 방법 참조). 이것은 어느 서버에도 나쁘게 반영되지는 않습니다. 둘 다 훌륭한 코드 조각이지만 디자인 목표가 크게 다릅니다. Apache는 집 전체를 포장 할 수있는 트럭 인 모든 사람들에게 모든 것이되도록 설계되었습니다. nginx는 작고 빠르도록 설계되어 있습니다. 스포츠카이지만 아내, 아이들, 며느리 및 가족 개를 데리고 갈 수는 없습니다.
voretaq7

나는 Nginx가 성장하고 있다고 생각합니다 ... 지금은 적어도 해치백이며 항상 성장하고 있습니다. 모든 주요 동적 언어를 어떤 방식 으로든 지원할 수 있으며 SSL을 지원하며 SPDY는 현재 베타 버전입니다.
Alex Chamberlain

15

니 진스

웹 서버로서 Nginx 에 대한 좋은 경험이 있습니다 . 파이썬에서 빠른 응용 프로그램 개발을 위해 이나 플라스크 와 같은 가벼운 wsgi 프레임 워크로 팀을 구성했습니다 .

그래도 초당 10 개 이상의 요청을 처리 할 것으로 기대하지 마십시오. :)

설치

Nginx는 Debian / Raspbian 및 Arch 리포지토리 모두에 있으므로 단일 명령으로 설치할 수 있습니다.

아치

sudo pacman -Sy nginx

데비안 / 라즈 비아

sudo apt-get install nginx

구성

웹 전체에 구성의 예가 많이 있으며 자세한 설명은 아마도이 질문의 범위를 벗어납니다. Nginx Wiki 에는 많은 예제가 있으며 메일 링리스트는 매우 유용합니다.

PHP를 언급 했으므로 표준 /etc/nginx/nginx.conf파일에 PHP 예제가 포함되어 있다는 사실에 매우 관심이 있습니다 .


나는 Nginx를 좋아합니다. 모듈 식 시스템을 사용하여 매우 쉽게 확장 할 수 있습니다.
Alex Chamberlain

1
나는 당신의 대답을 조금 확장했을 수도 있습니다.
Alex Chamberlain


1

node.js

node.js를 사용하여 경량 웹 서버를 작성할 수 있습니다. node.js 학습서 사이트에서 다음 예제를 참조하십시오.

var http = require('http');
  http.createServer(function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/plain'});
      res.write("Dynamic contents...");
      res.end('Hello World\n');
  }).listen(1337, "127.0.0.1");

console.log('Server running at http://127.0.0.1:1337/');

위의 코드는 Java 스크립트이므로 동적 코드 생성 논리를 Java 스크립트로 작성하고 즉시 사용할 수 있습니다.

Windows의 경우 링크 : http : //nodejs.org/ 또는 원하는 플랫폼에서 node.js를 다운로드하여 설정해야합니다.

다음 명령을 사용하여 웹 서버를 시작하십시오.

node hello.js

그러나 Node.js는 PHP를 사용합니까?
Lucas Kauffman

Node.JS는 다른 컨텍스트에서 사용됩니다. 모든 코드가 C ++이기 때문에 독립형 서버로는 잘 작동하지 않습니다. 그러나! node를 사용하여 node.js의 +1을 사용하여 GPIO 및 나머지 저수준 하드웨어에 직접 액세스 할 수 있기 때문에 좋습니다. 그러나 콘텐츠를 제공하려면 apache / lighttpd / iis와 같은 프런트 엔드가 여전히 필요합니다.
Piotr 쿨라

@LucasKauffman 아니요-웹 서버가 아니라 웹 응용 프로그램입니다.
Alex Chamberlain

1
Stack Exchange에 오신 것을 환영합니다. 좋은 대답이지만 질문이 해결되지 않는다고 생각하여 다운 투표를 한 것이 두렵습니다. OP는 PHP를 원했고 미래 독자들은 아마도 조금 더 성능이 뛰어난 서버를 원할 것입니다.
Alex Chamberlain

1
나만의 응용 프로그램을 개발하지 않고 Nagios를 실행 중입니다. p
Lucas Kauffman

0

어쩌면 당신은 다른 사람들이 저가형 박스 에서 무엇을 사용했는지 살펴볼 수 있습니다 .

기본적으로 lighttpd + php-fcgi입니다. Lighttpd는 실제로 가볍고 php-fcgi는 약간의 메모리를 사용하도록 구성 할 수 있습니다. 64MB VPS 상자 (nagios가 아니라 CMS)에 설정했습니다.

또한 적은 메모리 를 사용하도록 MySQL을 최적화 해야하는지 모르겠습니다 .

도움이 될 수 있습니다. 아직 Raspi 사용을 시작하지 않았습니다 :)


0

Mako Server와 BarracudaDrive는 동일한 소스에서 파생되었으며이 두 서버는 Apache가 정적 컨텐츠를 제공 할 수있는 것보다 70 % 더 빠른 동적으로 생성 된 컨텐츠 (Lua 스크립팅 언어를 사용하여)를 전달할 수 있습니다. 벤치마킹 결과는 다음과 같습니다. http://barracudadrive.com/blog/2013/03/Apache-Nginx-Lighttpd-Monkey-and-BarracudaDrive-Speed-Test

Mako 서버는 http://makoserver.net/ 에서 찾을 수 있습니다 .


0

512Mb Raspberry Pi에서 Ruby 기반 pi.gadgetoid.com을 연중 무휴로 실행하기 위해 Nginx / Passenger를 함께 사용하고 있습니다. 이것은 이전에 사용했던 Thin / Apache 설정을 크게 능가합니다. 이것은 트래픽이 많고 공개적인 웹 사이트이지만 Cloudflare (기본적으로 캐싱 프록시)를 사용하여 해당 볼륨의 대부분을 처리함으로써 많은 속임수를 썼습니다.

이 구성도 256MB Pi에 편안하게 설치 될 것이라고 확신하지만 승객 모듈과 Nginx를 컴파일하는 데 문제가있었습니다. 메모리 제한이 발생합니다.

나는 그것이 PHP 솔루션이 아니라는 것을 알고 있으며, 그러한 탄젠트 한 대답을 제안한 것에 대해 격분을 당할 것입니다. 그러나 지식의 범위를 넓히기 위해 Pi를 찾고 캐주얼 한 땜질을 위해 이것을하고 있다면 Ruby와 Sinatra를 살펴 보는 것이 좋습니다. 몇 주 안에 PHP에 대한 증오가 있습니다.

전반적으로 256MB 서버에서 PHP / Apache 웹 스택을 실행하는 데 큰 어려움이 없습니다. 클라우드 기반 호스팅의 전문적인 용량으로 훨씬 더 큰 사이트에 대해이 작업을 수행했습니다. MySQL이 관여하면 문제가 발생합니다. 256MB에서 전체 LAMP 스택을 실행하면 트래픽 양이 적을 때 가장 힘들지만 불가능하지는 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.