Nginx

파일:Attachment/Nginx/nginx.gif

2002년부터 러시아프로그래머 이고르 시쇼브(Игорь Сысоев)가 Apache(아파치)를 코딩하다 Apache의 C10K 문제[1]를 보고 이를 극복하면서 네이티브 Win32환경에도 돌아갈 무설치 웹 서버 프로그램에 대한 개발을 시작하여 2004년 스푸트니크 1호 발사일에 발표한 오픈소스 서버 프로그램. 현재 이고르 시쇼브와 그가 설립한 회사인 Nginx Inc.가 이 프로젝트를 운영중에 있다. 목표는 가벼우면서도 강력한 프로그램이라고... HTTP와 리버스 프록시, IMAP/POP3등의 서버를 구동가능하다.
읽을때는 엔진엑스라고 읽는다. 역사가 그렇게까진 오래되진 않아서 점유율 면에서 Apache에게 많이 밀린다. 하지만 신규서비스를 중심으로 점유율에 가속이 붙는 중이며, 이미 Apache가 여러가지면에 한계를 많이 보였으므로 특별히 큰 사유가 없다면 nginx로 갈아타는 추세다. 다만 확장 모듈이 Apache에 비해 적다는 것이 흠인데, 어차피 Apache의 이 많은 확장 모듈을 제대로 쓰는 사람은 드물다. 오히려 쓰지도 않으면서 괜히 덕지덕지 리소스만 낭비하는 모듈이 대부분이다. 따라서 호환성 확인 후 별다른 문제가 없다면 Nginx로 갈아타는 것이 현추세. 이미 필수적인 모듈은 Nginx에도 존재하고 그중 몇개는 Apache보다 50배 이상 빠르다(...) 마이크로소프트에게는 GUI관리가 쉬운 IIS에 밀리지만, 이쪽은 취향과 돈의 문제라서 1:1 비교가 힘들다.

구조적으로는 Apache에서 사용하는 스레드/프로세스 기반 구조 대신 비동기 이벤트 기반 구조를 가진다. 이로 인해서 서버 부하시 성능 예측이 쉽다. 덤으로 이로 인하여 10000개의 동시 접속을 하면 그 10000개에 드는 메모리 점유는 2.5MB다(....) 사용하는 리눅스 웹서버의 경우 LAMP(Linux + Apache + MySQL + PHP or Python or Perl)대신 LEMP를 쓴다. Nginx는 여러 서드파티 기능들(SSL, GeoIP등)을 모듈로 덧 붙이는 방식을 쓰고 있으며, 그래서 모듈을 쓰지 않을 경우 제외해 놓을 수 있다, 단, 소스 컴파일시 모듈을 추가하지 않으면, 그 이후에 추가가 안되지만...

Nginx는 현재 HTTP/2.0을 발빠르게 지원하려고 하고 있다. 아마 HTTP/2.0 보급화를 계기로 콩라인 획득(2등 위치)을 목표로 하는 듯하다. 그동안 콩라인은 IIS.

Nginx를 사용하면서 conf 설정[2]을 바꿀때는 재시작 할필요 없이 reload를 하면 된다. 즉, 프로세스를 재시작 할 필요가 없다는 점이 있다.

넷크래프트의 2013년 1월 웹서버 조사에서, 조사한 사이트중 점유율 3위를 차지[3]하였으며, 아마존닷컴 웹 서비스(AWS)에서는 44%이상의 점유율로 1위, 활동적인 웹 서버중 3위[4]를 차지했으며, 이 속도라면 잘 나가는 사이트쪽에선 콩라인 획득 가능할듯 보여진다.

사용 사이트

가나다 순이다.

그 밖에 CloudFlare에서는 Nginx를 변형한 CloudFlare-NginX를 사용한다.

nginxwelcome.jpg
Nginx를 처음 깔면 환영 문구가 나오는데, 구식버전에서는 그냥 빈 화면에 Welcome to Nginx만 뜨고 땡이다. 근데 문제는 몇몇 악성코드들이 컴퓨터를 감염시켜 DNS를 변경, 사이트를 변경시키는데 하필이면 저 화면만 뜨는 서버로 이동시킨다는 것. 덕택에 Nginx도 악성코드 취급을 받아, 현재는 환영페이지를 저렇게 변경해놨다.

9월16일 7시33분기준 hitomi.la 사이트에 접속시 저런 문구가 뜬다
  1. 1만개의 소켓을 열게 된다면 하드웨어가 충분한데도 불구하고 I/O 처리방식의 문제때문에 프로세스가 제대로 처리하지 못한다는 것
  2. vhost는 '서버 블록'으로 불리며, 정 귀찮으면 nginx.conf에 필요한 줄을 왕창 넣으면 돌아는 간다. 물론 이러면 수정할때 짜증난다.
  3. 현재 전세계 웹서버중 55.7%는 Apache, 17.6%는 IIS, 12.07%가 Nginx
  4. ApacheApache 59.04%, IIS 13.22%, Nginx 12.44%
  5. 파일:Nginxnamu.png
  6. Frontend로 nginx를 사용하는듯 하다. Backend는 Node.js 의 express 프레임워크이다.
  7. 파일:Dcinside-nginx.png
  8. 7288f503dafbc6c760dc508c2da6014b.PNG
  9. 파일:Attachment/Nginx/1386549615670 Screenshot 2013-12-09-09-29-00.png
    하단 nginx에 주목.
  10. 파일:Cap 2016-10-21 15-10-04-272.jpg