{"id":169,"date":"2014-06-14T03:18:21","date_gmt":"2014-06-14T07:18:21","guid":{"rendered":"https:\/\/www.grumpyland.com\/blog\/?p=169"},"modified":"2016-06-12T14:57:53","modified_gmt":"2016-06-12T18:57:53","slug":"webservers-caches","status":"publish","type":"post","link":"https:\/\/www.grumpyland.com\/blog\/169\/webservers-caches\/","title":{"rendered":"Webservers &#038; Caches"},"content":{"rendered":"<p>I&#8217;m a graph-diagram-table person. And when someone asks how web servers and caches are mixed, I now have an image to give them! \u00a0 <a href=\"https:\/\/www.grumpyland.com\/blog\/wp-content\/uploads\/2014\/06\/caches.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-170\" src=\"https:\/\/www.grumpyland.com\/blog\/wp-content\/uploads\/2014\/06\/caches.png\" alt=\"caches\" width=\"750\" height=\"750\" srcset=\"https:\/\/www.grumpyland.com\/blog\/wp-content\/uploads\/2014\/06\/caches.png 750w, https:\/\/www.grumpyland.com\/blog\/wp-content\/uploads\/2014\/06\/caches-100x100.png 100w, https:\/\/www.grumpyland.com\/blog\/wp-content\/uploads\/2014\/06\/caches-300x300.png 300w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/a>Now we can visually see how web server interacts with a page cache in apache, nginx &amp; varnish. And how user cache and opcache for PHP are separated by services like eAccelerator, APC (and APCu), xCache, &amp; Zend Opcache (aka just Opcache in PHP 5.5+) .<\/p>\n<p>&nbsp;<\/p>\n<p>P.S. I have no idea why I wasted an hour trying to make this graph look nice. Actually&#8230; I know, but still feels sort of wasteful.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;m a graph-diagram-table person. And when someone asks how web servers and caches are mixed, I now have an image to give them! \u00a0 Now we can visually see how web server interacts with a page cache in apache, nginx &amp; varnish. And how user cache and opcache for PHP are separated by services like [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_vp_format_video_url":"","_vp_image_focal_point":[],"footnotes":""},"categories":[15],"tags":[24,28,29,32,30,25,35,33,34,26,31,27],"class_list":["post-169","post","type-post","status-publish","format-standard","hentry","category-tutorial","tag-apache","tag-apc","tag-apcu","tag-cache","tag-eaccelerator","tag-nginx","tag-op-cache","tag-page-cache","tag-user-cache","tag-varnish","tag-web-server","tag-zend-opcache"],"_links":{"self":[{"href":"https:\/\/www.grumpyland.com\/blog\/wp-json\/wp\/v2\/posts\/169","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.grumpyland.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.grumpyland.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.grumpyland.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.grumpyland.com\/blog\/wp-json\/wp\/v2\/comments?post=169"}],"version-history":[{"count":2,"href":"https:\/\/www.grumpyland.com\/blog\/wp-json\/wp\/v2\/posts\/169\/revisions"}],"predecessor-version":[{"id":172,"href":"https:\/\/www.grumpyland.com\/blog\/wp-json\/wp\/v2\/posts\/169\/revisions\/172"}],"wp:attachment":[{"href":"https:\/\/www.grumpyland.com\/blog\/wp-json\/wp\/v2\/media?parent=169"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.grumpyland.com\/blog\/wp-json\/wp\/v2\/categories?post=169"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.grumpyland.com\/blog\/wp-json\/wp\/v2\/tags?post=169"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}