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