'nginx'에 해당되는 글 3건

  1. 2009.05.08 Phusion Passenger for Nginx
  2. 2008.05.29 어떤 웹서버를 사용할까? (5)
  3. 2008.01.25 Nginx 시작하기

Phusion Passenger for Nginx

2009.05.08 03:20 from ruby


Phusion Passenger는 아파치(Apache) 웹서버에서 레일스 애플리케이션을 연결해 사용할 수 있도록 해주는 모듈(module)이다. 물론 Rack도 지원을 해서 각종 다른 루비기반 웹애플리케이션 서버와의 연결도 쉽게 가능하겠다. 매우 간단하게 웹서버와 레일스애플리케이션을 구동할 수 있어서 매력적이다. 아파치를 앞단으로 두는 루비 웹애플리케이션 서버를 구동하려면 아주 유력한 선택이 될 것이다.

Apache -> Phusion Passenger -> Rails Application

설정, 구동, 관리가 편리하고 성능도 좋다고 해서, 기존의 HTTP프록시 연결 방식(mongrel, thin등) 외에도 널리 사용되는 레일스 서비스 구성요소일텐데, 아파치 전용 모듈이라 아쉬웠다. 내 입장에서는 웹서버로 Nginx(엔진엑스라고 읽는다)를 선호하는 상황이라 군침만 흘렸던 상황이었다.  예전에 작성한 글에서 Nginx용 Phusion Passenger가 있으면 좋겠다고 했었다. 지금에야 발견했지만, 4월달에 발표된듯.

http://blog.phusion.nl/2009/04/16/phusions-one-year-anniversary-gift-phusion-passenger-220/

야호!  이제 Nginx -> Passenger -> Rails 로 서버 스택을 구성해 볼 수 있겠다.

Posted by hatemogi 트랙백 0 : 댓글 0
웹서버하면 떠오르는 것은 Apache HTTP Server이다. 나역시 아무런 고민없이 아파치 웹서버만을 쓰다가, 지금은 기억나지않는 과거의 어떤 계기로 인해 lighttpd를 쓰게 되었었으며, 그러다 다시 nginx로 갈아타고, 그 후 지금까지는 nginx를 선호해 쓰고 있다.

물론 아파치가 가장 강력하고 훌륭한 기능들을 다양하게 제공하겠지만, 내게는 그 쓰지 않는 기능들의 필요성보다는 가볍고 간단함이 더 중요한 가치였다. 지금까지 내가 들어본 가볍고 간단한 웹서버는 lighttpd, cherokee, thttpd, 그리고 nginx였다. 이중에 실제로 사용해본 것은 lighttpd와 nginx이며 둘다 아주 만족스러운 기능과 성능, 그리고 편의성을 보여주었다. 지금으로써는 nginx에 너무도 만족한 나머지, 그다지 다른 웹서버를 바라보지 않고 있다. 아마도 아파치를 사용하는 대부분의 사람들도 그럴것이다. 충분히 만족스럽기 때문에 별다른 대안이 필요없는 상황일지 모르겠다.

내가 웹서버 사용에 있어 기대하는 가치은 무엇이었을까...

  • 성능(performance) & 안정성(stability)
  • 확장성(scalability) & 덩치(footprint)
  • 간편함
    • 간편한 설치(installation)
    • 간편한 설정(configuration)
    • 간편한 운영(operation)
  • 필요한 기능
    • rewrite
    • http_proxy (간단한 부하분산 기능을 포함하면 더 좋겠다)
    • virtual hosting
    • Linux와 MacOS X에서 사용가능

대부분의 웹서버가 이상의 가치를 모두 훌륭하게 실현하고 있을 것이다. 나라는 소비자와 웹서버라는 제품을 볼 때, 나는 이미 초과만족된 소비자인듯 하다. 덩치가 크고 설치/설정등의 작업이 복잡한 웹서버보다는 더 가볍고 간단한 웹서버가 매력적으로 느껴진다.

모든 웹서버가 필요한 가치를 모두 갖추고 있을 때, 어떤 웹서버를 선택해야하는지에 대한 고민이 의미가 있을까? 어떤 것을 써도 상관없는 것이잖아.

처음 아파치 대신 nginx를 도입할때에는 간단한 벤치마크를 해봤다. 아무런 튜닝(tuning)없이 기본 설정값으로 단순히 비교해보니, nginx가 우세했지만, 이미 둘의 성능은 내게 필요한 성능수준을 월등하게 뛰어넘었으므로 우열의 의미는 크지 않다. 결국 결정한 것은 설정의 편의성이었던것 같다.

이런저런 방법들로, 이성적으로 논리적인 판단과 비교를 해보려 애써보지만, 결국은 감성적인 판단을 내리게 되는 이런 상황을 뭐라고 부를지 궁금해진다. 감성적인(!) 판단으로는 이런상황 꽤 많이 있는거 같아. 

그래도 조금이라도 더 이성적인 비교를 원한다면,

http://en.wikipedia.org/wiki/Comparison_of_web_servers

여기를 뒤져볼 수 있겠다.


TAG nginx
Posted by hatemogi 트랙백 1 : 댓글 5

Nginx 시작하기

2008.01.25 14:36 from translation

왜 엔진엑스(Nginx)를?

엔진엑스는 고성능의 웹서버이자 프록시 서버이다. 많은 기능이 있지만 모든 사람을 위한 것은 아니다. 보통 엔진엑스를 다음의 방식으로 사용한다:

  • 수많은 동시 접속수를 안전하게 처리하기 위해 아파치(Apache)를 대신해 사용 : 엔진엑스는 웹 호스팅 제공업체들 사이에 특히 널리 알려져 있다. 엔진엑스가 epoll과 kqueue를 사용하는 덕분에, 50,000의 동시 접속 수도 보고된 적도 있다.
  • 부하분산 프록시 서버(load-balancing proxy server)로 사용: 엔진엑스는 레일즈(Rails)PHP 응용프로그램을 FastCGIHTTP를 통해서 처리하는 앞단(front-end)으로 널리 알려져있다. C로 작성했고, Perlbal을 쓸 때보다 약 1/4의 CPU만을 사용한다.
  • 메일 프록시 서버로 사용: 특정 분야에의 활용이긴 하지만, fastmail.fm이 큰 성공사례다.
  • 간단한 설치과정과, 깔끔한 설정파일, 그리고 적은 버그: 엔진엑스는 쉽게 구동할 수 있고, 재시작하는 일이 거의 필요 없고, 심지어는 전혀 정지시간 없이 새 바이너리로 업그레이드할 수 있다.

엔진엑스의 기능과 성능에 대해 더 알고 싶다면, 특징개요추천사를 참고하기 바란다.

필요사항

  • gzip 모듈을 쓰기 위해서 zlib라이브러리가 필요하다.
  • rewrite 모듈을 쓰기 위해서 pcre 라이브러리가 필요하다.
  • ssl을 지원하기 위해 openssl 라이브러리가 필요하다.

내려받기

공식 내려받기 페이지를 보자

설치

소스를 받아 압축을 풀고, 터미널에서 아래의 명령을 실행한다.

./configure
make
sudo make install

엔진엑스는 기본적으로 /usr/local/nginx에 설치된다. 컴파일 옵션(compile-time options)을 주어서 이 위치를 바꾸거나 다른 옵션을 선택할 수 있다.

플랫폼별 노트:
  1. 솔라리스(Solaris) x86/64용 빌드하기
  2. MacOSX에서 컴파일하는 방법

엔진엑스 실행하기

루트(root)권한으로 /usr/local/nginx/sbin/nginx를 실행한다. 설정파일 /usr/local/nginx/conf/nginx.conf를 원하는대로 편집하고 나서, 다음의 명령으로 설정값을 다시 읽어들일 수 있다:

kill -HUP `cat /usr/local/nginx/logs/nginx.pid`

nginx.pid파일의 위치는 여러분의 시스템(machine)에 따라 다를 수 있다. 예를들어 우분투(Ubuntu)의 경우에는 다음과 같다:

/var/run/nginx.pid

더볼거리


고급 주제

- hatemogi 번역
원문: http://wiki.codemongers.com/NginxGettingStarted
@ 2008/01/25
Posted by hatemogi 트랙백 0 : 댓글 0

티스토리 툴바