NGINX
Nginx logo.svg
소프트웨어 정보
원작자 이고르 시쇼브
출시 2004년 10월 4일
언어 C
웹사이트 http://www.nginx.org/

2002년부터 러시아프로그래머 이고르 시쇼브(Игорь Сысоев)가 아파치 코딩하다 아파치의 C10K 문제[1]를 보고 이를 극복하면서 네이티브 Win32환경에도 돌아갈 무설치 웹 서버 프로그램에 대한 개발을 시작하여 2004년 스푸트니크 1호 발사일에 발표한 오픈소스 서버 프로그램. 현재 이고르 시쇼브와 그가 설립한 회사인 Nginx Inc.가 이 프로젝트를 운영중에 있다. 목표는 가벼우면서도 강력한 프로그램이라고... HTTP와 리버스 프록시, IMAP/POP3등의 서버를 구동가능하다.

이를 지칭할 땐 엔진 X라고 부른다. (ENginex) 이는 러시아도 마찬가지.

구조적으로는 아파치에서 사용하는 스레드/프로세스 기반 구조 대신 비동기 이벤트 기반 구조를 가진다. 이로 인해서 서버 부하시 성능 예측이 쉽다고... 이걸 사용하는 리눅스 웹서버의 경우 LAMP(Linux + Apache + MySQL / MariaDB + PHP or Python or Perl)대신 LEMP를 쓴다. 여러 서드파티 기능들(SSL, GeoIP등)을 모듈로 덧 붙이는 방식을 쓰고 있다. 그래서 모듈을 안 쓸 경우 제외해놓는데 단, 소스 컴파일시 모듈을 추가 안 하면 그 이후에 추가가 안 된다.

어느 기관틀:모호2012년 웹서버 조사에서, 웹서버 프로그램 중 조사한 사이트중 3위를 차지하였으며, 활동적인 웹 서버중 2위를 차지했다. 현재 네이버의 프론트엔드의 웹서버 엔진이 Nginx이다. (백엔드는 Apache HTTPd를 사용하는 것으로 보임) 그 밖에는 Netflix, WordPress.com, GitHub, SoundCloud, Zynga등이 Nginx를 돌린다고 한다. 현재 리브레 위키의 DDoS를 막아주는 클라우드플레어의 웹서버도 Nginx의 포크를 사용하고 있다.

현재 Nginx의 안정버전은 1.23.4이다.

QUIC+HTTP/3 적용 방법

원 출처

이제 프리뷰 NGINX QUIC+HTTP/3 구현에 사용할 수 있는 바이너리 패키지(영문) [1]

NGINX-QUIC 적용 방법

유의사항

nginx-quic용 사전 빌드 패키지는 현재 다음 운영체제 및 아키텍처에서 사용할 수 있다.

* 운영 체제 및 아키텍처:
* - RHEL 9 및 파생 제품: AMD64, ARM64
* - 우분투 22.04: amd64, arm64
* nginx-quic 패키지는 quictls와 동적으로 연결된다.
* 시스템 전체 openssl 패키지와 함께 런타임 종속성으로 설치된다. 
* quictls는 운영 체제에서 제공하는 openssl 패키지와 다르다. 그리고 시스템 전체의 암호화 정책을 따르지 않으며, 배포판별 패치가 적용되지 않는다.

/etc/pki/quictls(RHEL9) 또는 /etc/quictls(Ubuntu 22.04)의 구성을 사용한다. nginx-quic 패키지는 nginx 또는 nginx-plus 패키지와 함께 설치할 수 없다. nginx-quic를 설치하기 전에 구성 파일을 백업하라.

  • $ sudo cp -a /etc/nginx /etc/nginx-quic-backup

RHEL 9

  • 1. 우선 다음 명령어를 사용하여 필수 구성 툴을 설치하라.
* $ sudo dnf install yum-utils
  • 2. 그 다음 yum 리포지토리를 설정하려면 다음 코드를 사용하여 /etc/yum.repos.d/nginx-quic.repo라는 파일을 만든다.
* [nginx-quic]
* name=nginx-quic repo
* baseurl=https://packages.nginx.org/nginx-quic/rhel/9/$basearch/
* gpgcheck=1
* enabled=1
* gpgkey=https://nginx.org/keys/nginx_signing.key
  • 3. nginx-quic를 설치하려면 다음 명령을 실행한다:
* $ sudo dnf install nginx-quic
  • 4. GPG 키를 수락하라는 메시지가 표시되면 지문이 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62"와 일치하는지 확인한다. 일치하면 성공한 것이다.

우분투 22.04

각주

  1. 10K만큼의 소켓을 열게 된다면 하드웨어가 충분한데도 불구하고 I/O 처리방식의 문제때문에 프로세스가 제대로 처리하지 못한다는 문제
이 문서의 일부는 리브레 위키Nginx 문서를 원출처로 합니다.