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.