YAPC::Kansai OSAKA 2017ã®è³æã§ã
ãPageSpeed Insightsãã§ãµã¤ãã®é度ã¢ããã«ã¤ãã¦ããã©ã¦ã¶ã®ãã£ãã·ã¥ãæ´»ç¨ãææ¡ããããã®ãªã³ã¯å ã確èªããã¨ä¸è¨ã®ããã«è¨è¿°ããã¦ãã¾ãã ãâExpires ãããã¼ã¨ Cache-Control: max-age ãããã¼ ãããã®ãããã¼ã§ã¯ãã¦ã§ã ãµã¼ãã¼ããæ°ãããã¼ã¸ã§ã³ãæä¾ããã¦ãããã©ãã確èªããã«ããã©ã¦ã¶ã§ãã£ãã·ã¥æ¸ã¿ã®ãªã½ã¼ã¹ã使ç¨ã§ããæéãæå®ãã¾ããç¡æ¡ä»¶ã§é©ç¨ããããå¼·ããã£ãã·ã¥ ãããã¼ãã§ããè¨å®å¾ã«ãªã½ã¼ã¹ããã¦ã³ãã¼ããããã¨ãæå¹æéãæå¤§æéã«éãããã¦ã¼ã¶ã¼ããã£ãã·ã¥ãæ¶å»ããã¾ã§ããã©ã¦ã¶ã¯ãã®ãªã½ã¼ã¹ã«å¯¾ãã GET ãªã¯ã¨ã¹ããçºè¡ãã¾ããã âLast-Modifed ãããã¼ã¨ ETag ãããã¼ ãããã®ãããã¼ã§ã¯ããã£ãã·ã¥ããç®çã§ããã¡ã¤ã«ãåããã©ããããã©ã¦ã¶ã夿ããæ¹æ³ãæå®ãã¾ã
ä»åã¯æ¢ã«CDNãå©ç¨ãã¦ããæ¹ããå©ç¨ãã¦ããªãæ¹ãä»ããåºæ¥ãHTTPããããã¥ã¼ãã³ã°ããç´¹ä»ãã¾ã HTTPãããã®ã話ã§ã¯ãã¬ã¹ãã³ã¹ãããããªã¯ã¨ã¹ããããã®ä¸ã«ä½ããããã©ãããå½¹å²ãªã®ãç°¡åã«ã¾ã¨ãã¦ã¿ã¾ããããé常ã«å¤ãã®ãã¼ã¿ãWEBã®ããã¨ãã§å©ç¨ããã¦ãããã¨ãåãã£ãã¨æãã¾ãã CDNå©ç¨æã«å©ç¨è å´ãåºæ¥ããã¥ã¼ãã³ã°ã¯ããªãªã¸ã³ãµã¼ãã¼å´ã®ApacheãNginxãªã©ã§ã©ã®ãããªHTTPã¬ã¹ãã³ã¹ããããä»ä¸ããã®ããããªãã®ãã¨ãããã¨ã決ããããããã¥ã¼ãã³ã°ã§ãã Last-Modifiedãããã¯ã¬ã¹ãã³ã¹ãããã®ã²ã¨ã¤ã§ApacheãNginxãªã©ã®WEBãµã¼ãã¼å´ã§é©åãªè¨å®ããããã¨ã«ãã£ã¦ããã©ã¦ã¶å´ã«ã³ã³ãã³ãã®æçµæ´æ°æå»ãéä¿¡ãããã¨ãã§ãã¾ãã ãã©ã¦ã¶å´ã¯ããã®ã³ã³ãã³ãã®æçµæ´æ°æå»ãè¦ãã¦ããæ¬¡åãªã¯ã¨ã¹ãããéã«ãªã¯ã¨ã¹ããã
â ãã©ã¦ã¶ã«ä¸åããã£ãã·ã¥ãããããªãå ´å ãµã¼ãããã¯ã©ã¤ã¢ã³ãã¸ã®HTTPå¿çããã â Cache-Control "no-cache" ã¢ã¯ã»ã¹æ¯ã«å 容ãå¤ãã£ããããµã¼ãã«ã¢ã¯ã»ã¹ãã¦ããããªãã¨å°ããããªã³ã³ã³ã³ãã³ãã®å ´åã§ãã ã¹ã¯ãªããè¨èªçã§çæããåçã³ã³ãã³ãã¯ããã®ããã«ããæ¹ãå®å ¨ã§ãã ä¾ãã°å¯¾è±¡ã³ã³ãã³ããç»åã§ããå ´åããã©ã¦ã¶ã§åãç»åã®URLãå«ã¾ããHTMLãéããå ´åã¯ã ãã¡ãããã¼ã«ã«ã«ãã£ãã·ã¥ããªãã®ã§ããµã¼ãã¸åãåãããè¡ã æ¡ä»¶ã¤ããªã¯ã¨ã¹ãï¼If-Modified-SinceãIf-None-Matchï¼ããµã¼ãã¸éã£ã¦ããªã â¡ãã©ã¦ã¶ã«ãã£ãã·ã¥ããããã©ã夿´ãªããé½åº¦ç¢ºèªããããã«ããã ãµã¼ãããã¯ã©ã¤ã¢ã³ãã¸ã®HTTPå¿çããã â Cache-Control "max-age=0" â Expires "Mon, 2
I heard recently that Nginx has added caching to its reverse proxy feature. I looked around but couldn't find much info about it. I want to set up Nginx as a caching reverse proxy in front of Apache/Django: to have Nginx proxy requests for some (but not all) dynamic pages to Apache, then cache the generated pages and serve subsequent requests for those pages from cache. Ideally I'd want to invalid
ã»ã»ã§ååã®è©±ã®ç¶ããããã«æ¸ãããã§ãããçµæãæ¸ããªãã£ãã®ã¯ãæ¬å½ã«ãã®æé ã§ããã®ãï¼ã¨ããã®ã è¥å¹²ä¸å®ã ã£ãããã§ããã§ãç¾ç¶ããã§ç¨¼åãã¦ããããã£ãã·ã¥ãåããããã©ã¼ãã³ã¹ã確ä¿ãã¦ããã®ã§æ²è¼ãããã¨æãã¾ãã ããã¾ã§ããç§ã®ã¡ã¢ï¼ï¼ã¬ãã«ã§ã è¨å®ã¯ãnginx.conf 㨠default.conf ã®ï¼ç¨®é¡ã«ãªãã¾ã ã¾ãã£ã¨confãã¡ã¤ã«ãæ²è¼ãã¾ããããCDNãä½ãä¸ã§éè¦ãªé¨åã ããæç²ãã¾ãã /etc/nginx/nginx.conf è¨å®ãã¹ãé ç®ã¯ä»¥ä¸ã®é ç®ã§ãããã¡ãã¯ããã£ãã·ã¥å ¨è¬ã®è¨å®ãè¡ã£ã¦ããã¾ã proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=my-key-zone:64m max_size=180000m inactive=4d; level # level
ããã«ã¡ã¯ããã«ã¡ã¯ã11ã¤ã³ãMacBook Airãæ¬²ããã¦ãã¾ããªãiwanagaã§ãã ååã®è¨äº ã幸ãã«ãã好è©ãé ããæ§ã§é常ã«ããããã§ããå¬ãããªã£ã¦ãã¤ãããã°ã£ã¦ç¬¬ï¼å¼¾ãæ¸ãã¦ãã¾ãã¾ãããå¼ãç¶ããã½ã¼ã·ã£ã«ã²ã¼ã ã§ãã使ããããã¼ãã«ã¿ã¤ãæ¯ã«ã¡ãã£ã¨ãããã¯ããã¯ãç´¹ä»ãã¦ããã¾ãã ä»åã¯ã¡ãã£ã¨ã©ã¤ããªæãï¼èªã¿ç©ã«ãªã£ã¦ãã¾ã£ã¦ãã¾ãããã¦ã¼ã¶IDåä½ã§1ã¤ã ãæã¤ãã¼ã¿ãã¨ããã©ã¡ã¼ã¿ãªã©ã®ãã¹ã¿ã¼ãã¼ã¿ãã«ã¤ãã¦ã説æãããã¨æãã¾ããã¡ãªã¿ã«æ¬¡åã¯InnoDBã®ãã¼ã¿æ§é ã®ç°¡åãªèª¬æã¨è¤åãã©ã¤ããªã¼ãã¼ã®ãã¼ã¿ã«ã¤ãã¦ããã®æ¬¡ã§ç´¹ä»ãæããã¡ãã£ã¨ããã¢ãã¯ãªãã¯ããã¯ãæ§è½ç®¡çã®ããã®ææ³ãç´¹ä»ãããã¨ãäºå®ãã¦ãã¾ãã ãã®åã«ããã å æ¥è¡ããã JAPAN INNOVATION LEADERS SUMMIT ã§å¼ç¤¾æ¾ä¿¡ããã½ã¼ã·ã£ã«ã²ã¼ã ã®
HeartRails Tech Blog ãã¼ãã¬ã¤ã«ãºã®ã¨ã³ã¸ãã¢ããã¶ã¤ãã¼ã«ããããã°ã§ãã ã¦ã§ããµã¼ãã¹ãã¹ããã¢ããªãIoT ããã¤ã¹ã®éçºã«é¢é£ããæè¡çãªæ å ±ãçºä¿¡ãã¦ããã¾ãã ãã®è¨äºã¯ãããããä¸è¬åãã«ãµã¼ãã¹ãªãªã¼ã¹ãã¦ã¿ããããªã¨èãã¦ããã¨ã³ã¸ãã¢åãã«æ¸ãã¾ããã 説æã« Rails ãç¨ãã¦ãã¾ãããèãæ¹èªä½ã¯ Web ã¢ããªä¸è¬ã«å¿ç¨å¯è½ã§ãã çµè« ãcache publicã«è¨è¨ãããã åºæ¥ãã ãå¤ãã®ãã¼ã¸ã cache public ã«ãã¾ãããã ç ²æã®æ¥ããã¼ã¸ã¯ cache public ã«åºæ¥ãã¯ãã§ãã ãã®èª¬æã ãã§æå³ã®åãã£ãæ¹ã«ã¯ä»¥ä¸ã®è¨äºã¯èªã価å¤ã¯ããã¾ãããæéãææç¾©ã«ã¤ãã£ã¦ãã ãããããããããã ç ²æã«èããã ãµã¼ãã¹ãªãªã¼ã¹ãã¦ããã°ããªãé 調ã«äºãéã³ãéãè¯ããã°ããºã£ãããã©ããã®å¤§æã¡ãã£ã¢ã«åãä¸
ã¢ããªã±ã¼ã·ã§ã³ããããã¤ããå¾ãå©ç¨è ããããªãã¼ããã¦ããã¼ã¿ãææ°ã«ãªããªãããæ´æ°ããã¯ãã®ãã¼ã¿ãæ¸ãå¤ãããªããã¨ããã¯ã¬ã¼ã ãåããã®ã§èª¿ã¹ã¦ã¿ãã¨ä»¥ä¸ã®ãããªãã°ãåºã¦ããã ãã¼ã¿ã®æ´æ°å¾ã$location.path("/path")å é¨ãã¹ãå¤ããå¦çãè¡ã£ã¦ããã®ã ãããã¹ãå¤ããå¾ã®GETãªã¯ã¨ã¹ããå ¨ã¦HTTP 204ã§è¿ã£ã¦æ¥ã¦ãããã¨ãåããã(å¾ã§èª¿ã¹ãã¨ã¨304ã®æããã£ã) æ®æ®µãéçºã¨ãã¹ãã«ä½¿ç¨ãã¦ããChromeã§ã¯è¦ããã¨ãç¡ãã®ã§ãUAã調ã¹ãã¨æ¡ã®å®IE(IE10ãIE11)ã ã£ãã 調ã¹ã¦ã¿ãã¨IE(å°ãªãã¨ã10ã¨11)ã¯Ajaxã®ãªã¯ã¨ã¹ããåæã«ãã£ãã·ã¥ããããã§ããã®ãã°ã表示ããã¦ããéã¯ãµã¼ãã«å ¨ãååãã«è¡ã£ã¦ããªãã£ãã ãã®åé¡(IEã ãã®ããã ã)解決ããã«ã¯HTMLã®ãããã¼ã®ããã«ãªã¯ã¨ã¹ãã®ããããæç¤ºçã«ãã£
æè¿è²ã ãã£ã¦Androidã¨å¿ãéãããããããã«ãªã£ã¦ããagoï¼@kyo_agoï¼ã§ãã ãã®ã¨ã³ããªã¯ tech.kayac.com Advent Calendar 2012 3æ¥ç®ã®è¨äºã§ãã Application cacheï¼cache manifestï¼ã¨ã¯ WHATWGãW3ã§è°è«ããã¦ããHTML5 Offline Web Applicationã®ä»æ§ã®ä¸é¨ã§ãã ç´°ãã仿§çã«é¢ãã¦ã¯æå¾ã«åèURLãã¤ããã®ã§ãã¡ããã覧ãã ããã ããã§ã¯è²ã 誤解ã®å¤ãApplication cacheã®ä½¿ãæ¹ããç´¹ä»ãããã¨æãã¾ãã ä½¿ãæ¹ .appcacheã®æ¡å¼µåã«å¯¾ãã¦text/cache-manifestã®MIMEã¿ã¤ããè¨å®ãã¦ãã ããã .appcacheãã¡ã¤ã«ã¯ä»¥ä¸ã®å½¢å¼ã§ä½æãã¦ãã ããã CACHE MANIFEST: #æ´æ°ç¨IDï¼æ¥ä»+é£çªçï¼ ãã£ã
第5ç« æ´é²å¯¾ç ãããã·ãã£ãã·ã¥å¯¾ç ãããã·ãã£ãã·ã¥ã¸ã®ã³ã³ãã³ãæ®ç ãã©ã¦ã¶ã¨Webãµã¼ãã®éã«ã¯ãããã¤ãã®ãã£ãã·ã¥ã¡ã«ããºã ãåãã¦ãããã¨ãå¤ãã ãããã·ãµã¼ãã®ãã£ãã·ã¥ââ伿¥çLANãéç¨ãã¦ããå¤ãã®çµç¹ä½ã§ã¯LANããã¤ã³ã¿ã¼ãããã¢ã¯ã»ã¹ãè¡ãéãããã·ãµã¼ããçµç±ãã¦è¡ããã¨ãå¤ã ãã£ãã·ã¥ãµã¼ãâã¤ã³ã¿ã¼ããããããã¤ãã®ä¸ã«ã¯ãä¼å¡ã®Webã¢ã¯ã»ã¹ãåæ»ã«ããç®çã§ãã£ãã·ã¥ãµã¼ããéç¨ãã¦ããã¨ããããã ãããã®ãã£ãã·ã¥ã¡ã«ããºã ã¯ããã©ã¦ã¶ããã®ãªã¯ã¨ã¹ãã«ãã£ã¦å¾ãããã³ã³ãã³ãããã£ãã·ã¥ã«ä¿æãã¦ãããåãURLã®ãªã¯ã¨ã¹ããçããã¨ããæ¬æ¥ã®Webãµã¼ãã«ã³ã³ãã³ããåãã«è¡ããããã£ãã·ã¥ã®å 容ããã©ã¦ã¶ã«æ¸¡ããã®ã§ããã ãã®ããã«ãã£ãã·ã¥ã¯ãåæ»ãªã¤ã³ã¿ã¼ãããã®å©ç¨ã«å¯ä¸ãã¦ãããã ããããã³ã³ãã³ãã«ãã£ã¦ã¯ããã ã²ã¨
ãã©ã¦ã¶ãã£ãã·ã¥ã¨ã¬ã¹ãã³ã¹ãããã®é¢ä¿ã調ã¹ã¦ã¿ãã 調ã¹ããã©ã¦ã¶ Firefox 3.5 IE 6 Opera 9.64 Google Chrome 2.0.172.33 ã¬ã¹ãã³ã¹ããã Expires Last-Modified Cache-Control Pragma çµè« 以ä¸ã®ã¬ã¹ãã³ã¹ããããè¿ãã ExpiresãLast-ModifiedãCache-ControlãPragma 以å¤ã®ãããã«ã¤ãã¦ã¯ä»»æã ãã£ãã·ã¥ããããå ´å Cache-Control: private, max-age=æå¹æéã®ç§æ° æ¡ä»¶ä»GETãããããå ´å Expires: éå»ã®æå» Last-Modified: éå»ã®æå» ãã£ãã·ã¥ãããããªãå ´å Cache-Control: no-cache èª¿æ»æ¹æ³ ããããã®ãã©ã¦ã¶ã§ä»¥ä¸ã®ã¬ã¹ãã³ã¹ããããè¿ããã¼ã¸ãèªã¿è¾¼ãã ã¨ãã«
August 23, 2008 10:51 am | 13 Comments Itâs important to make resources (images, scripts, stylesheets, etc.) cacheable so your pages load faster when users come back. A recent study from Website Optimization shows that the top 1000 home pages average over 50 resources per page! Being able to skip 50 HTTP requests and just read those resources from the browserâs cache dramatically speeds up pages.
HHKB Professional Type-Sãæ¬²ããã¤ã³ãã©å ¼ã½ããã¦ã§ã¢ã¨ã³ã¸ãã¢ã®bokkoã§ãã æ®æ®µã¯HHKB Proã®æ¥æ¬èªé åãã¼ãã¼ããæç¨ãã¦ãã¾ããè±èªé åã¯è¦æã§ãããã®ãã¨ãååã®ã¨ã³ã¸ãã¢ã«è¨ãã¨ã¸ãç®ã§è¦ã¤ãããã»ã»ã»ç¨ã¿ã¤ãããããã¨è«ãåãã§ãã æ¬é£è¼ã®æå¾ã¨ãªãä»åã¯pixivã®ãã¼ã¿ã¹ãã¢/ãã£ãã·ã¥æ¦ç¥ãæ¯ããå¨è¾ºããã«ã¦ã§ã¢ã«ã¤ãã¦è§£èª¬ãã¦ããã¾ãã memcachedããKyotoTycoonã¸ç§»è¡ããéã«çºçããåé¡ ååã®è¨äºã®æå¾ã«ããã£ãããã«pixivã§ã¯APã®æ°ã ããã£ãmemcachedã¸ã®ãªã¯ã¨ã¹ããå°æ°ã®KyotoTycoonã«ã¾ã¨ãããã¨ã§ä¸é¨ã®KyotoTycoonãµã¼ãã¸ã®TCPã³ãã¯ã·ã§ã³æ°ãççºãã¦KyotoTycoonãµã¼ãã®CPUãã¡ã¢ãªãªã½ã¼ã¹ã«ã¯ä½è£ãããã®ã«ãããã¯ã¼ã¯ã§è©°ã¾ãã¨ããåé¡ãèµ·ããã¾ããã å
ãµã¨Django 1.3 beta1ã触ã£ã¦ã¿ãããä»ã¾ã§ã®CACHE_BACKENDã¨ããè¨å®ã«å¤ãã£ã¦ãCACHESã¨ããè¨å®ãå¯è½ã«ãªã£ããããã使ãã¨è¤æ°ã®ãã£ãã·ã¥ãæå®ã§ããã # settings.py CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': '127.0.0.1:11211', }, 'alternative': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': '127.0.0.1:11212', } } django.core.cache.get_cacheã§ãã£ãã·ã¥ã½ã¼ã¹åãæå®ãã¦ãã£ãã·ã¥ãªã
Djangoã®ãã£ãã·ã¥ã使ã£ã¦ã¿ããè¯ããªã¼ ä»åã¯ã Djangoã®ã使°´æºã®ãã£ãã·ã¥ APIãã使ã£ã¦ã ãã£ãã·ã¥ãåããã¨ã«ãã¦ã¿ãã ããæç¾¤ã«è¯ããªã å¿ è¦ãªé¨åï¼ãµã¤ããã¼ãã¡ã¤ã³é¨åã®ä¸é¨ãªã©ï¼ããªãã¸ã§ã¯ã丸ãã¨ãã£ãã·ã¥ãã¦ãã£ããã¨ã è²ã åºæ¥ãã åã¦ã¼ã¶ã¼ãã¨ã«ãã¼ã¸ãããå ´åãªããã¯ã ãã®ã¦ã¼ã¶ã¼ãã¨ã«ãã£ãã·ã¥ãåãããã«ãã¦ããããªãã¦äºããã£ã¦ã¿ãã ä»åã¯ãã¼ã«ã«ã¡ã¢ãªä¸ã«æ®ãã®ããã£ã¦ã¿ãã ã¾ãã¯ã settings.pyã«ä»¥ä¸ãå ããã Djangoãªã³ã©ã¤ã³ããã¥ã¡ã³ãå訳ã«è¼ã£ã¦ãããã ãã®ãã£ãã·ã¥ã¯ãã«ãããã»ã¹ã»ã¼ããã¤ã¹ã¬ããã»ã¼ã è¯ããã¼ã 次ã«ãã£ãã·ã¥ãå®éã«ä¿åããé¨å ä»åã¯å ¨ã¦views.pyã§è¡ã£ãã
ã©ã³ãã³ã°
ãç¥ãã
ã©ã³ãã³ã°
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}