2012-11-15 4 views
2

모든 사이트에 대해 nginx, memcached 및 APC를 사용하고 있습니다. 내가 호스팅하는 사이트는 vBulletin 포럼과 다른 사이트입니다.NGINX 및 memcached - 전체 페이지 캐싱 및 TTL

나는 nginx와 memcached를 설정하여 nginx가 memcached 서버에 전체 페이지 항목이 있는지 확인하고 PHP로 요청을 전달하지 않고 전체 페이지를 캐시 한 다음 표시합니다 사용자에게 구성에 대한 링크를 참조하십시오 : http://pastebin.com/ZFSrA9e5

현재 vBulletin 포럼은 "$ config [ 'Datastore'] [ 'class'] = 'vB_Datastore_Memcached';" 그리고 WP 블로그는 Memcached Object Cache (http://wordpress.org/extend/plugins/memcached/)를 사용하고 있습니다.

지금까지 memcached의 전체 페이지로 캐싱하고 있습니다 (위에서 설명한대로). 내가 어떤 이슈에 빠지면 - 지금까지는 그렇게 좋은지 보아라.

달성하고자하는 것은 좋은 로딩 시간과 낮은로드입니다. 나는 우연히 한 나는 우연히 한 문제/질문은 다음과 같습니다

  1. 어떻게 예를 들어 처음에 사용자가 로그인되는 memcached는 첫 번째 사용자에 대한 요청을 캐시 것을 알고있다. 그런 다음 다음 사용자가 오면 memcached가 첫 번째 사용자의 캐시 된 페이지를 제공합니다.

  2. 어떻게 memcached/nginx가 캐시를 업데이트하기 위해 전체 사이트 캐시를 플러시합니까?

  3. APC와 memcached를 모두 실행하는 것이 좋습니까? 내가 아는 한. memcached 캐시 작은 값과 apc 캐시에 컴파일 된 PHP 코드가 맞습니까?

누군가 내게이 질문에 대해 가르쳐 줄 수 있다면 정말 대단 하시겠습니까?

+0

와우, 너무 흥미 롭습니다. 나는 당신이 높은 볼륨을 가져 가라. 특히 Nginx에서 vBulletin 설정에 깊은 인상을 받았으므로 URL 재 작성 및 구성이 어려울 수 있습니다. 나는 이것에 응답을보기 위하여 흥미있다. 수 설정, 설정에 대한 자세한 내용을 게시 할 수 있습니다 .. specs .. repped. 필요하면 현상금도받습니다. – TheBlackBenzKid

+0

나는 많은 양을 얻지 못하고, 학습 목적으로 이것을합니다. nginx에 vBulletin 설정은 잘, 아무것도.방금 기본 서버 블록을 추가하고 webroot에 vBulletin php 파일을 놓았습니다. 나는 E3 Xeon 1230v2와 8GB 램, SSD는 없지만 RAID 1에는 2 개의 1tb 드라이브를 사용했다. –

답변

1

1) 캐시 응답은 전적으로이의 따라 달라집니다

set $memcached_key "wordpress:$request_uri"; 

그래서 각각의 캐시 엔트리가 이해가되지 않는 경우에만 URI 및 사용자 인증 정보의 따라 달라집니다. 두 번째 요청은 동일한 memcache 키를 갖기 때문에 첫 번째 요청과 첫 번째 요청이 동일합니다. 각 로그인 사용자에 대해 별도의 캐시 키를 저장하려는 경우, 당신은이 같은 더 많은 고유 키, 뭔가를 설정해야합니다 :

2)이 WP-플러그인의 따라 달라집니다. Nginx는 강제로 캐시를 플러시하지 않으므로 memcache를 다시 시작해야합니다.

3) 예, 둘 다 서로 다른 작업을 수행하므로 APC 캐시는 PHP 코드를 캐시하므로 각 요청마다 매번 컴파일하지 않아도됩니다 (서버를 다시 시작하거나 PHP 파일을 변경할 때만 다시 컴파일됩니다). Memcache는 페이지의 일부분이나 전체 페이지 (시나리오)를 메모리에 저장하고 memcache에서 nginx가 제공 한 KEY가 제공되면 PHP가 포함되지 않습니다. 전체 페이지는 memcahced 메모리에서 직접 제공됩니다.

희망 하시겠습니까?