웹 애플리케이션이 memcached를 사용하는 경우 varnish를 배포해야 합니까, 아니면 varnish를 사용하여 웹 콘텐츠를 캐시하는 경우 memcached가 필요합니까?
둘 중 하나 또는 둘 다를 사용해야 하는 몇 가지 시나리오를 추천해 줄 수 있는 사람이 있나요?
답변1
HTTP 프록시 서버는 memcached
다양한 문제를 해결하고 소프트웨어 스택의 다양한 계층에 적용되는 다양한 기술입니다. 둘 다 유용합니다.
애플리케이션 앞에 있는 HTTP 프록시 서버는 캐시의 요청에 응답할 수 있으므로 애플리케이션이 일부 요청 로드를 처리할 필요가 없습니다. 이는 애플리케이션이 캐시 가능한 콘텐츠를 출력하고 최종 사용자가 해당 콘텐츠를 여러 번 요청하는 경우에만 작동합니다. 콘텐츠를 캐시할 수 있으려면 프록시 서버(및 브라우저)가 캐시 가능한 내용과 기간을 알 수 있도록 애플리케이션에서 적절한 HTTP 헤더를 설정해야 합니다.
요청이 애플리케이션까지 전달되는 경우(HTTP 프록시 캐시가 누락되거나 HTTP 프록시가 없는 경우) 애플리케이션은 다시 보내야 할 내용을 계산해야 합니다. 이 계산 비용이 많이 들지만 이전 요청에서 부분 데이터를 캐시할 수 있는 경우 이는 memcached
애플리케이션이 나중에 다시 사용할 수 있도록 이러한 계산의 [부분] 결과를 저장하는 좋은 방법입니다. 이를 수행하려면 애플리케이션을 특별히 작성하고 memcached
이 데이터를 가져오고 설정하려면 인스턴스에 연결해야 합니다.
답변2
Varnish는 html, js, css, 이미지 등과 같은 웹 파일을 제공하도록 설계되었습니다. 인터넷 클라이언트와 백엔드 애플리케이션 서버 간의 HTTP 트래픽을 가로챕니다. Varnish는 http 포트 80을 수신하고 HTTP 프로토콜을 사용합니다. 브라우저나 백엔드 애플리케이션 모두 Varnish가 존재한다는 사실을 알 필요가 없으며 올바르게 구성되면 작동합니다.
Memcached는 일반적으로 데이터베이스에 대한 쿼리 수를 줄이기 위해 데이터베이스 서버에서 애플리케이션으로 전송된 데이터를 캐시하는 데 사용되는 애플리케이션입니다. 또한 데이터가 메모리에 캐시되므로 검색 속도가 훨씬 빨라집니다. 대신 Memcached에서 데이터를 삽입하고 검색하는 애플리케이션을 제어합니다. 즉, Memcached를 올바르게 사용하려면 애플리케이션을 작성해야 합니다. Memcached는 HTTP 프로토콜을 지원하지 않습니다.