nginx의 코어, 풀, 엑스트라 및 라이트 패키지의 차이점은 무엇입니까?


72

nginxUbuntu에서 공식 저장소의 5 개 패키지 중 하나에서 제공하는 가상 패키지입니다 (적어도 14.04에서 기본값으로 nginx-core믿습니다).

$ apt-cache depends nginx | tail -n+2 | cut -d: -f 2 | sort -u
 nginx-core
 nginx-extras
 nginx-full
 nginx-light
 nginx-naxsi

이러한 패키지의 차이점과 권장되는 사용 사례는 무엇입니까?

이 다소 오래된 데비안 위키 페이지 사이의 기능 비교를 가지고 extras, full, lightnaxsi,하지만 언급이 만들어진되지 않습니다 core. 14.04에서 얼마나 많이 변경 되었습니까?


secondary 내가 아는 nginx것처럼 Apache와 같은 모듈의 런타임 활성화를 지원하지 않으므로 설치가 nginx-extras성능에 영향을 줍니까?


1
누군가 최신 버전의 기능 비교 차트를 작성하여 Google 문서에서 공유 한 것 같습니다 : docs.google.com/spreadsheet/…
Steven K

1
@StevenKath는 해당 문서가 데비안만을 기반으로한다는 점에 유의하십시오. 그것은 nginx-core를 건드리지 않으며 naxsi 풍미를 제거하는 불안정한 변화를 포함하지 않습니다 (유지하기가 쉽지 않기 때문에).
토마스 워드

답변:


99

Steven의 대답이 핵심 요점과 각 맛이 무엇인지에 대한 매우 기본적인 요약을 다루지 만 포장에 대해 약간의 작업을 할 때 차이점에 대해 훨씬 더 자세히 설명하고 매우 다양한 모듈 세트를 제공합니다. 각각은 좋은 답변에 절대적으로 중요합니다. 기본 설명은 비교에 대해 많은 정의를하지 않습니다. (또한, 이전 블로그를 인용하는 Steven의 의견 (및 심지어 '유지 관리인'이라고도 함). nginx-is-coming-to-main 게시물을 최신 블로그로 포팅하려고했지만 기회가 없었습니다. .)

또한 NGINX 웹 서버의 최신 패키지는 NGINX PPA에서 구할 수 있으며 거의 ​​모든 데비안을 기반으로 자체 관리합니다. ( 안정적인 PPA (이 게시물 기준 1.6.2); 메인 라인 PPA ( 이 게시물 기준 1.7.7, 2014 년 12 월 4 일에 1.7.8 예정))


의 다른 풍미 nginx:

다른 특징은 모두 같은 버전 nginx이지만, 다른 특징 세트 (for nginx-extras)는 물론 최소한의 기능과 가장 기능적인 '전체' 기능 세트를 제공하기 위해 데비안 패키지 관리자가이 특징을 결정 했습니다. 웹 서버는 웹 사이트에서 사용되는 경향이 있습니다. 기능이 다른 기능에 대해 선택된 정확한 이유는 나에게 알려져 있지 않지만, IRC에 관한 데비안 관리자 중 한 명과의 보충적인 논의에서, 최초의 평가를 확인하는 진술이 작성되었습니다. 다른 유스 케이스- light최소한의 사이트 호스팅을 충족하는 가벼운 기능 세트 full, 더 많은 추가 기능을 포함하지 않고 더 완전한 기능 세트extras우분투에 포함될 수있는 패키지에있는 거의 모든 것. naxsi15.04 이전에는 Naxsi가 리소스를 많이 사용하기 때문에 모듈에 최소한의 모듈 만 포함 된 Naxsi 변형이있었습니다.

아마도 현재 로그를 게시 할 수없는 개인 대화에서 Upstream NGINX와 정기적으로 조정하는 NGINX의 데비안 관리자 중 하나에 따르면 NGINX 2.x는로드 가능한 모듈을 지원 할 것입니다. 이 경우에, light, full, 및 extras각 모듈을 포함하는 개별 패키지 부르는 metapackages해질 것이다. 이것이 사실이되는 날짜는 알려지지 않았지만 실제로 어떤 모듈이이를 수행 할 수 있는지도 알 수 없습니다.

현재로서는 nginx가상 패키지가 사용 가능한 버전 중 하나만 설치하도록 설계되었습니다. 기본적 nginx-core으로 메인에있는 것처럼 개인이 더 많이 사용하는 경우 nginx-core가상 패키지에서 가장 먼저보고 설치해야하는 항목입니다. (그러나 nginx패키지는의 맛 중 하나에 의존 할 수 있으며 nginx, 특정 풍미 선호가 필요없는 사람들을 위해 설치를 조금 더 쉽게하기 위해 주로 있습니다)

각 변형에서 사용 가능한 특정 모듈 ( Vivid debian/control파일Trusty debian/control파일을 기반으로 (Naxsi 패키지가 Vivid에서 제거되었으므로))에 대한 자세한 분석이 아래에 제공됩니다. 이것은 Ubuntu의 최신 변경 사항을 반영하지 않으며 업데이트 된 정확한 정보를 확인하려면 해당 패키지 설명을 참조해야합니다 .

  • nginx-core14.04 현재 Ubuntu 리포지토리의 메인 섹션에서 유일한 맛이며 Ubuntu 리포지토리 에만 존재 하며 PPA 또는 데비안에는 없으며 Debian에는 포함되지 않습니다. nginx-full맛 과 사실상 동일 하지만 타사 모듈이 포함되어 있지 않습니다. 사용에 대한 추론nginx-full이 변형의 기반은 빌드 된 바이너리에서 상대적으로 본격적인 핵심 모듈 세트를 제공하면서 동시에 타사 모듈을 유지하려는 것이 었습니다. 따라서 보안 팀은 코드를 검토하고 타사 모듈이 nginx-tarball 포함만큼 훌륭하게 지원되지 않는 다양한 코딩 스타일을 가지고 있음을 발견했기 때문에 타사 모듈이 포함되어 있지 않습니다. 모듈 (이 내용은 Main Inclusion Request / Report 버그 에서 자세히 설명합니다. 여기에는 토론 지점과에 대한 Ubuntu Main에 포함될 수있는 내용에 대한 추가 검토 토론이 포함되어 있습니다 nginx.) 여기에서 활성화 된 모듈의 전체 목록은 패키지 설명에 나와 있습니다.

    표준 HTTP 모듈 : 코어, 액세스, 인증 기본, 자동 색인, 브라우저, 문자셋, 빈 GIF, FastCGI, Geo, Gzip, 헤더, 색인, 제한 요청, 제한 영역, 로그, 맵, Memcached, 프록시, 참조 자, 다시 쓰기, SCGI , 분할 클라이언트, SSI, 업스트림, 사용자 ID, UWSGI.

    선택적 HTTP 모듈 : 추가, 디버그, GeoIP, Gzip 사전 압축, HTTP 하위, 이미지 필터, IPv6, 실제 IP, Spdy, SSL, 스텁 상태, 대체, WebDAV, XSLT.

    메일 모듈 : 메일 코어, IMAP, POP3, SMTP, SSL.

  • nginx-lightnginx사용 가능한 가장 가벼운 맛입니다 . 유니버스 리포지토리에 있으며이를 사용하려면 활성화해야합니다. -core또는 에서 사용할 수있는 많은 양의 모듈을 활성화하지 않습니다 -full. 타사 모듈도 포함되어 있습니다. 사용 가능한 모듈은 다음과 같습니다.

    표준 HTTP 모듈 : 코어, 액세스, 인증 기본, 자동 색인, 문자 세트, 빈 GIF, FastCGI, Gzip, 헤더, 색인, 로그, 맵, 프록시, 다시 쓰기, 업스트림.

    옵션 HTTP 모듈 : 인증 요청, 디버그, Gzip 사전 압축, IPv6, 실제 Ip, SSL, 스텁 상태.

    제 3 자 모듈 : 에코.

  • nginx-fullnginx패키지 의 기능이 풍부한 풍미 중 하나입니다 . light상대방 과 마찬가지로 Universe 저장소에 있습니다. nginx 소스 타르볼에서 표준 및 옵션 인 대부분의 핵심 포함 모듈과 nginx 웹 서버의 기능을 확장하도록 설계된 여러 타사 모듈을 사용할 수 있습니다. 모듈은 다음과 같습니다.

    표준 HTTP 모듈 : 코어, 액세스, 인증 기본, 자동 색인, 브라우저, 문자셋, 빈 GIF, FastCGI, Geo, Gzip, 헤더, 색인, 제한 요청, 제한 영역, 로그, 맵, Memcached, 프록시, 참조 자, 다시 쓰기, SCGI , 분할 클라이언트, SSI, 업스트림, 사용자 ID, UWSGI.

    옵션 HTTP 모듈 : 추가, 인증 요청, 디버그, GeoIP, Gzip 사전 압축, HTTP 하위, 이미지 필터, IPv6, 실제 IP, Spdy, SSL, 스텁 상태, 대체, WebDAV, XSLT.

    메일 모듈 : 메일 코어, IMAP, POP3, SMTP, SSL.

    제 3 자 모듈 : 인증 PAM, DAV 내선, 에코, HTTP 대체 필터, 업스트림 페어 큐.

  • nginx-extras가장 풍부한 기능을 가진 nginx패키지입니다. 그리고 그것 fulllight형제들 처럼 , 그것은 또한 우주 저장소에 있습니다. 또한 모든 모듈을 nginx-full지원할뿐만 아니라 추가 모듈 (예 : Perl 모듈)과 nginx 웹 서버의 기능을 더욱 확장하도록 설계된 더 많은 타사 모듈도 포함합니다. 전체 모듈 목록은 다음과 같습니다.

    표준 HTTP 모듈 : 코어, 액세스, 인증 기본, 자동 색인, 브라우저, 문자셋, 빈 GIF, FastCGI, Geo, Gzip, 헤더, 색인, 제한 요청, 제한 영역, 로그, 맵, Memcached, 프록시, 참조 자, 다시 쓰기, SCGI , 분할 클라이언트, SSI, 업스트림, 사용자 ID, UWSGI.

    옵션 HTTP 모듈 : 추가, 인증 요청, 디버그, 임베디드 Perl, FLV, GeoIP, Gzip 사전 압축, 이미지 필터, IPv6, MP4, 랜덤 인덱스, 실제 IP, 보안 링크, Spdy, SSL, 스텁 상태, 대체, WebDAV, XSLT.

    메일 모듈 : 메일 코어, IMAP, POP3, SMTP, SSL.

    타사 모듈 : Auth PAM, Chunkin, DAV Ext, Echo, Embedded Lua, Fancy Index, HttpHeadersMore, HTTP 대체 필터, http 푸시, Nginx 개발 키트, 업로드 진행, 업스트림 페어 큐.

  • nginx-naxsiNaxsi 웹 응용 프로그램 방화벽 모듈을 사용할 수있는 nginx의 변형입니다. 그것도 Universe에 있지만, 이 특징은 더 이상 데비안 관리자가 지원하지 않으며 15.04 릴리스로 우분투에서 완전히 떨어질 것입니다. Naxsi WAF 모듈 외에도 모듈보다 훨씬 가벼운 모듈 세트가 포함되어 nginx-full있습니다. 전체 모듈 목록은 다음과 같습니다.

    표준 HTTP 모듈 : 코어, 액세스, 인증 기본, 자동 색인, 브라우저, 문자셋, 코어, 빈 GIF, FastCGI, Geo, Gzip, 헤더, 색인, 제한 요청, 제한 영역, 로그, 맵, Memcached, 프록시, 참조 자, 다시 쓰기 , 분할 클라이언트, SSI, 업스트림, 사용자 ID.

    옵션 HTTP 모듈 : 디버그, IPv6, 실제 IP, SSL, 스텁 상태.

    제 3 자 모듈 : Naxsi, 캐시 퍼지, 업스트림 페어.


풍미 중 자원 사용

의 다양한 특징에 대해 실행 된 벤치 마크는 알지 못하지만 nginx일반적으로 사용하는 버전이 더 많은 기능 nginx을 사용할수록 더 많은 리소스를 사용 한다고 가정하는 것이 논리적 입니다.

그러나 더 많은 모듈을 사용할 수있는 메모리 창시자 일 수있는 Apache와 달리 모듈을 사용할 nginx때 Apache에 비해 많은 메모리를 사용 하지 않습니다. (이 문장의 예외는 naxsi맛입니다.이 맛은 웹 서버뿐만 아니라 웹 응용 프로그램 방화벽이기 때문에 항상 더 많은 리소스를 소비합니다.)

이 답변을 찾으면 벤치 마크를 추가 할 것입니다. 그러나 다시 다양한 맛에 대한 기존 벤치 마크를 알지 못합니다. 그리고 내가 운영하는 사이트에 트래픽이 많지 않지만 , 또는 PHP 기반 사이트 사이 nginx-extras에서 실제 성능이 저하되는 것을 보지 못했습니다 .nginx-fullnginx-light


실제로 정식. 내에서이 줄을봤을 때이 모든 질문은 시작되었다 error.log내가 설치 한 후 nginx-extra: [info] 19936#0: Using 32768KiB of shared memory for push module in /etc/nginx/nginx.conf. RSS가 아니라 공유되었지만 여전히 궁금합니다. 따라서 성능이 의심 스럽지만 부차적입니다.
muru

2
@muru push모듈은 좋은 비트의 공유 메모리를 사용하는 것으로 유명합니다. 내 지식으로는 (그리고 이것에 약간 잘못되었을 수도 있습니다), 공유 메모리는 푸시 모듈이 사용될 수있는 웹 서버의 모든 사이트에서 사용됩니다. 그러나, 모듈은 타사 모듈은, 그래서 그것으로 실제 문제는 자신의 관리자들 :) 지향해야한다
토마스 구

1
아냐, 문제 없어 PPA의 최신 버전이 backports있습니까? 그들은 아마도 같은 소스에서 내장되어 있기 때문에 그리고, 보안 팀에 의해 적용되는 패치합니다 nginx-core또한이 사용할 수있는 -full-extra오른쪽?
muru

3
@muru 불행히도, PPA 버전의 패키징은 Ubuntu와 별도로 수행됩니다. 현재 패키지를 이전 릴리스로 백 포트하는 것은 매우 까다로워집니다. 데비안 변경 사항을 데비안 변경 사항을 Ubuntu 변경 사항에 병합하는 것을 망설 일 필요가 없기 때문에 궁극적으로 PPA에서 수행됩니다. 주요 포함 이후, 나는 이전 릴리즈에서 사용 가능한 것과 일치하도록 많은 변경 사항을 제거해야하므로 백 포트를 조사하지 않았습니다. (그리고 naxsi 패키지 드롭은 현재 15.04 버전을 백 포트 할 수 없습니다).
토마스 워드

2
@muru 그렇습니다. 14.04 이상에서 보안 업데이트 (또는 표준 릴리스 업데이트)로 적용된 패치는 모두 동일한 코드 기반을 사용하므로 해당 리포지토리에서 사용할 수 nginx-core있는 다양한 기능뿐만 아니라 해당 패치에도 적용됩니다 nginx. 그들은 ./configure다른 모듈을 활성화하거나 비활성화하기 위해 다른 라인을 가지고 있습니다 .
토마스 워드

14

다음은 주로 패키지 설명에 기반한 매우 높은 수준의 평가 입니다. (각각의 사용 사례를 제공하는 데는 부족할 것입니다. 그러나 호기심을 만족 시켜서 기여할 수있을 것으로 생각했습니다.)

최소에서 최대로 :

nginx-light : "기본 버전"

기본 기능을위한 최소 모듈 세트.

nginx-naxsi : "naxsi가있는 버전"

최소 세트와 강화 된 "Nginx Anti Xss & Sql Injection"구성 및 필수 플러그인.

nginx-core : "코어 버전"

표준 nginx 배포, 타사 모듈이 적습니다.

이것은 최초의 Canonical 지원 nginx 패키지입니다. 커뮤니티 지원 "유니버설"리포지토리 대신 Ubuntu "메인"리포지토리에 있습니다. "nginx-core는 현재 Ubuntu Trusty 14.04 Main에 있습니다!" 에 메인테이너의 비공식 (나이와 지금 소멸) 블로그의 아카이브 나에 메인테이너의 비공식 블로그에 이전 게시물의 사본 :

이미 확립 된 nginx 향은 Ubuntu Main (nginx-light, nginx-full, nginx-extras 및 nginx-naxsi)에 포함되어 있지 않습니다. 우분투 보안 팀은 타사 모듈은 코딩이 크게 다르므로 지원할 수 없다고 말했습니다.

이를 위해 메인 리포지토리에 포함 된 nginx-core라는 패키지를 만들었습니다. 이 패키지에는 스톡 nginx tarball과 함께 제공되는 모듈 만 포함되어 있습니다. 이 패키지에는 타사 모듈은 포함되지 않으며 NGINX 업스트림에서 제공되는 모듈 만 포함됩니다.

nginx-full : "표준 버전"

자주 사용하는 타사 모듈을 포함한 표준 nginx 배포.

nginx-extras : "확장 버전"

표준 nginx 배포와 자주 사용되지 않는 여러 모듈이 있습니다.


1
한 가지 : nginx아시다시피 Apache와 같은 모듈 활성화를 지원하지 않으므로 설치 nginx-extras가 성능에 영향을 줄 수 있습니까?
muru December

1
naxsi는 -core 또는 -full이 아닌 -naxsi 및 -extras에만 포함됩니다. -extras를 사용하면 성능에 영향을 줄 수 있으며, 더 가벼운 패키지보다 더 많은 메모리를 소비합니다.
Steven K

2
오래되었습니다. 나는 nginx 패키지와 관련하여 많은 영향을 미치기 때문에 이것에 대해 더 완전한 진술을 게시 할 것입니다.
토마스 워드

1
@ThomasW. 와우, 내가 "유지 관리인의 블로그"에서 내가 인용 한 친구 아니니?
Steven K

1
@StevenKath Yeppers, 나는 심지어 내 대답에서 그 점을 다루었습니다. Wordpress가 악의적 인 프레임 워크이기 때문에 이전 블로그를 오프라인으로 가져 와야했지만 여전히 요점이 있습니다. 우분투의 '공식 관리자'와는 거리가 멀지 만 패키지에서 가장 많은 유지 관리 작업을 수행하고 '비공식 관리자'로 간주 될 수 있습니다.
토마스 워드
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.