nginx를 사용하는 것보다 nginx를 사용하는 니스가 더 낫습니까? [닫은]


22

Varnish와 함께 nginx를 사용하는 것에 대해 많은 이야기를했지만 그 이유를 이해하지 못합니다. nginx가 충분하지 않습니까?

Nginx에는 SSI, 리버스 프록시 캐시, 경량, SSL, cgi, fpm 등을 사용할 수 있습니다.

바니시는 같은 것이 있지만 SSL은 없으며 cgi 지원은 없습니다.


"더 나은"은 정말 주관적입니다. 사용 사례에 따라 다릅니다.
— voretaq7

7
때로는 간단한 질문이 복잡한 질문보다 작업을 더 잘 수행합니다. 이 질문을 "원래의 Q & A 형식"에 적합하지 않다고 가정 한 사람들의 행동에 대해 매우 우려하고 있습니다. 나는이 주제를 찾고 있는데이 토론의 결과를 보는 데 매우 관심이있었습니다.
— Roger

바니시는 강력한 vcl 구성, 제거, 리버스 프록시 캐시를 가지고 있으며, ESI nginx는 FCGI, 리버스 프록시 캐시, ssi, 퍼지 없음 (모듈이있을 수 있음) 성능을 사용할 수 있으며 정적 파일과 거의 동일합니다. 캐싱 ... 당신은 내가 도울 수있는 질문이 있습니다
— Bogdan Cosmin

답변:


14

nginx보다 작은 정적 파일의 경우 니스가 ~ 5 % 빠릅니다. 아파치 앞의 니스 또는 웹 응용 프로그램 서버 앞의 니스가 큰 이익입니다. 그러나 nginx 앞에서 이점은 무시할 만합니다 (특히 오버 헤드와 추가 복잡성을 고려할 때)


이를 지원하기 위해 몇 가지 테스트 결과를 제공 할 수 있습니까? 이미 nginx + opcache를 사용중인 경우 어떻게해야합니까? 그렇다면 니스를 사용하면 어떤 이점이 있습니까?
— 심각한

23

먼저, Nginx는 웹 서버이며 모든 기능과 복잡성이 수반됩니다. 또한 캐싱 기능이 있지만 이것이 주요 디자인 목표는 아닙니다.

니스는 웹 서버 가 아닙니다 . 그 역할을 수행 할 수는 없습니다 (어쨌든 악의적 인 VCL이 없다면). 그 역할은 다른 서버에서 제공 한 컨텐츠를 캐시하는 것입니다. 필요한 경우 요청 또는 응답을 변경할 수 있습니다.

nginx가 트래픽을 처리 할 수 ​​있다면 충분합니다. nginx가 유지할 수없는 경우 용량을 늘리는 한 가지 방법은 캐시를 캐시 앞에 놓고 가능한 많은 요청을 캐시가 처리하도록하는 것입니다.

예를 들어 Apache를 사용하여 웹 서버 클러스터에서 비교적 복잡한 여러 PHP 웹 사이트를 실행합니다. 용량 문제가 발생하기 시작했을 때 Apache 클러스터 앞에 Varnish 서버 쌍을 배치했습니다. 니스 호스트는 이제 Apache 백엔드를 방해하지 않고 들어오는 모든 요청의 85 %를 처리합니다.


따라서 니스는 PHP에서 생성 한 동적 컨텐츠를 캐시합니까? 아니면 다른 것들?
— Alix Axel

바니시는 캐시하도록 지시 한 모든 것을 캐시합니다. PHP 출력 만, 정적 파일 만 또는 둘 다 캐시 할 수 있습니다. 매우 강력한 도구입니다.
— Insyte

나는 당신의 구체적인 예에 ​​대해 물었습니다. 동적 응용 프로그램 (시작 용 PHP 세션)을 엉망으로 만들지 않고 동적 내용을 캐시하는 방법을 배웁니다. 정적 콘텐츠를 캐싱하는 것은 약간 중복되는 것 같습니다.
— Alix Axel

3
동적 내용에 따라 다릅니다. 예를 들어, 페이지가 댓글이있는 블로그 게시물이라고 가정 해보십시오. 주석 스레드를 생성하는 데 비용이 많이 들지만 5 분 동안 캐시하는 것이 완벽하게 허용됩니다. 반면에 웹 메일 애플리케이션이 리턴 한 동적 컨텐츠를 캐싱하는 것은 분명히 문제가됩니다. 대소 문자를 혼용 할 수도 있습니다. 전자 상거래 앱의 전체 출력을 캐시하되 쇼핑 카트 표시기를 채우기 위해 광택을 백엔드로 다시 호출하도록 지시합니다.
— Insyte
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.