경고: 이 문서의 오래된 판을 편집하고 있습니다. 이것을 게시하면, 이 판 이후로 바뀐 모든 편집이 사라집니다. 경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!{{소프트웨어 정보 |이름 = NGINX |원어이름 = |배경색 = |글자색 = |로고 = [[파일:Nginx logo.svg]] |화면 = |화면설명 = |원작자 = 이고르 시쇼브 |개발 = |종류 = |출시 = 2004년 10월 4일 |최신버전 = |최신출시 = |미리보기 = |미리출시 = |상태 = |언어 = [[C언어|C]] |운영체제 = |플랫폼 = |엔진 = |작성언어 = |라이선스 = |이전 = |이후 = |웹사이트 = http://www.nginx.org/ |비고 = }} == 상세 == [[2002년]]부터 [[러시아]]의 [[프로그래머]] 이고르 시쇼브(Игорь Сысоев)가 아파치 코딩하다 아파치의 C10K 문제<ref>10K만큼의 소켓을 열게 된다면 하드웨어가 충분한데도 불구하고 I/O 처리방식의 문제때문에 프로세스가 제대로 처리하지 못한다는 문제</ref>를 보고 이를 극복하면서 네이티브 Win32환경에도 돌아갈 무설치 웹 서버 프로그램에 대한 개발을 시작하여 [[2004년]] [[스푸트니크 1호]] 발사일에 발표한 [[오픈소스]] [[서버]] 프로그램. 현재 이고르 시쇼브와 그가 설립한 회사인 Nginx Inc.가 이 프로젝트를 운영중에 있다. 목표는 가벼우면서도 강력한 프로그램이라고... HTTP와 리버스 프록시, IMAP/POP3등의 서버를 구동가능하다. 이를 지칭할 땐 엔진 X라고 부른다. (<del>E</del>Ngin<del>e</del>x) 이는 러시아도 마찬가지. 구조적으로는 아파치에서 사용하는 스레드/프로세스 기반 구조 대신 비동기 이벤트 기반 구조를 가진다. 이로 인해서 서버 부하시 성능 예측이 쉽다고... 이걸 사용하는 리눅스 웹서버의 경우 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]] 적용 방법 == === 원 출처 === [https://www.nginx.com/blog/binary-packages-for-preview-nginx-quic-http3-implementation/ 이제 프리뷰 NGINX QUIC+HTTP/3 구현에 사용할 수 있는 바이너리 패키지(영문)] [https://quic.nginx.org/packages.html] === NGINX-QUIC 적용 방법 === ==== 유의사항 ==== nginx-quic용 사전 빌드 패키지는 현재 다음 운영체제 및 아키텍처에서 사용할 수 있다. * 운영 체제 및 아키텍처: * - [[RHEL]] 9 및 파생 제품: [[AMD64]], [[ARM]]64 * - [[우분투 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. 우선 다음 명령어를 사용하여 필수 구성 툴을 설치하라 * $ sudo apt update && sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring * 2. apt가 패키지 진위여부를 확인할 수 있도록 공식 nginx 서명 키를 가져온다. * $ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ * | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null * 3. nginx-quic 패키지에 대한 apt 리포지토리를 설정 하려면 다음과 같은 명령어를 실행한다. * $ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \ * https://packages.nginx.org/nginx-quic/ubuntu `lsb_release -cs` nginx-quic" \ * | sudo tee /etc/apt/sources.list.d/nginx-quic.list *4. nginx-quic를 설치하려면 다음 명령을 실행한다: * $ sudo apt update * $ sudo apt install nginx-quic ==== conf 설정문서에 적용 ==== 위의 절차를 완료했다면 /etc/nginx/conf.d 디렉토리에 있는 conf 설정 파일에 추가 설정을 적용한다. * listen 443 http3 reuseport; NGINX에 HTTP/1.1 및 HTTP/2와 동일한 포트(여기서는 443)에서 HTTP/3 연결을 수신 대기하도록 지시하는 매개변수와 함께 listen에 http3 지시문을 추가한다. 이 reuseport매개변수는 NGINX 작업자 프로세스가 여러 개인 경우 올바른 작동을 위해 필요하다. 단 멀티 도메인을 사용하고 있다면 한 conf 파일에만 적용하고 다른 conf 파일들은 reuseport를 빼야한다. * listen 443 http3 reuseport; 또한, TLS 1.3 지원을 위해 아래 명령어를 추가한다. * ssl_protocols TLSv1.3; 마지막으로, 다음과 같은 지시문을 추가한다. * add_header Alt-Svc 'h3=":$server_port"; ma=86400'; 아래 예시를 참조하고 적용하면 된다. * server { * # for better compatibility we recommend * # using the same port number for QUIC and TCP * listen 443 http3 reuseport; # QUIC * listen 443 ssl; # TCP * * ssl_certificate certs/example.com.crt; * ssl_certificate_key certs/example.com.key; * ssl_protocols TLSv1.3; * * location / { * # advertise that QUIC is available on the configured port * add_header Alt-Svc 'h3=":$server_port"; ma=86400'; * * #proxy_pass <upstream_group>; * #root /<root_directory>; * } } 저장한 후 vim을 빠져나와 아래의 명령어를 실행해서 nginx를 재시작한다. * sudo systemctl restart nginx 에러와 함께 실패 메세지가 되지 않았다면 성공한것이다. {{각주}} [[분류:자유 소프트웨어]] {{퍼온문서|Nginx||일부|리브레 위키|https://librewiki.net/wiki/Nginx}} 요약: 이음위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 이음위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요! 취소 편집 도움말 (새 창에서 열림) 이 문서에서 사용한 틀: 틀:각주 (편집) 틀:소프트웨어 정보 (편집) 틀:알림바 (편집) 틀:정보상자 주제칸 (편집) 틀:정보상자 칸 (편집) 틀:정보상자 큰칸 (편집) 틀:퍼온문서 (편집)