Handling a tremendous amount of images with Fastly / Yamagoya Traverse 2020
Nginxã§HTTPSï¼ã¼ãããå§ãã¦SSLã®è©ä¾¡ãA+ã«ããã¾ã§ Part 2 â è¨å®ãCiphersuiteãããã©ã¼ãã³ã¹ ä»æ¥ã®ã¤ã³ã¿ã¼ãããã®ä¸çã§ã¯ãä¸è¬çãªéçWebãµã¤ããå«ãã å ¨ã¦ã®Webãµã¤ã ã«ãå¼·åºã§å®å ¨ãªHTTPSã®ã»ããã¢ãããå¿ è¦ã¨ãªãã¾ãããã®è¨äºã¯ãNginxã»ãã¥ãªãã£ãã©ã®ããã«ã»ããã¢ããããã®ãã«é¢ããã·ãªã¼ãºã®ãã¼ã2ã§ãã ãã¼ã1 ã¯ãWebãµã¼ãã«æå¹ãªç½²å証ææ¸ãã»ããã¢ãããã話ã§çµäºãã¾ããããããããã«ã¯ãæé©ãªè¨å®ã¨ã¯è¨ãé£ããããã©ã«ãã®Nginxã®è¨å®ã使ç¨ãã¦ãã¾ããã ãã®è¨äºãèªã¿çµããã°ãSSL Labsã®ã¬ãã¼ãã§ãA+ã®è©ä¾¡ãç²å¾ã§ããå®å ¨ãªHTTPSã®è¨å®ãã§ãã¾ããããã ãã§ãªãã追å ã§ããã¤ãã®å¾®èª¿æ´ãè¡ããããã©ã¼ãã³ã¹ããã¦UXãåä¸ããã¦ããã¾ãã ããã«æ²è¼ããè¨è¿°ãã³ã¼ãã®æç²ã®ä»ã«ããããã«ä½¿
å»å¹´ã«å¼ãç¶ããISUCONã«LINEã®é¸æãã¼ã ããã¼ã çãã åæ¨ãã§åºå ´ãã¦åªåãããã¨ãåºæ¥ã¾ããï¼ï¼ï¼ï¼ @tagomorisã@sugyan ãç²ãæ§ã§ããï¼ï¼ #isucon 2014ã§åªåãã¾ãã - ãããã¼ãã¡ã¢ æå¾ã®æå¾ãæ®ã15åã§nginxã®è¨å®ãè¡ãå ´æãééãã¦ããã¨ãããã¨ã«æ°ä»ãããã¼ã«ã«ã®ãã³ããã¼ã¯ã§ããæ¤è¨¼ãã§ãããã©ã®ç¨åº¦ã®ã¹ã³ã¢ã«ãªãã®ããã¾ãfailããã®ãåãããªãç¶æ³ã§ããããçµæçã«è¯ãã¹ã³ã¢ã«ãªã£ã¦ã»ã£ã¨ãã¾ããã èªåã§ãä½åº¦ãè¨ããªãããnginxã®rewriteã¯internal redirectãã®å¤§ååãå¿ãã¦ãã¾ãããã¯ãã1æ¥100åå±ããããã«ãã¾ãã äºé¸ã¢ããªã±ã¼ã·ã§ã³ã®å¾©ç¿ åçãªã¹ã³ã¢ã¯åºã¦ãã¾ããããå°éã«å¾©ç¿ããã¦ãã¦ã $ ~/benchmarker bench --workload 8 07:26:29
ã¯ããã« ããã«ã¡ã¯ããã¯ããªã³ã¯äºæ¥é¨éçºé¨ãµã¼ããµã¤ãéçºèª²ã®kitajimaã§ããå¼ç¤¾ãµã¼ãã¹ãã¯ããªã³ã¯ã¯ãã·ã¹ãã åæ§ç¯ã®ä¸ç°ã¨ãã¦
V å çããæãã¦é ããã®ã§ãInstagram åæ§ Django/AWS æ§æã® Pinterest ã®ã¹ã±ã¼ã«ãã¡ã¢ãPinterest ã¯ãã¤ãã®ã¢ã«ã¦ã³ãåãåã㦠å å ããããµã¼ãã¹ãªã®ã§ãä»å¾ä½¿ããªãã¨æãã¾ãã æ¬é¡ã«å ¥ãåã«ãPython ã«ã¯ The Zen of Python (æ¥æ¬èª) ã¨ããææ³ãããã¾ããç§ã¯ãã®ææ³ã Python ã§ã®ããã°ã©ãã³ã°ã ãã§ãªããã¤ã³ãã©ã®æ§ç¯ã®éãæèããããã«å¿ããã¦ãã¾ãã"Simple is better than complex" ã§ããInstagram ã Pinterest ã®ã¹ã±ã¼ã«ãè¦ã¦ããã®ææ³ããã£ã¨å¥½ãã«ãªãã¾ããã Instagram ã¯ããã·ã³ãã«ãªã¤ã³ãã©ã«æ´æ¹ãã¦ãããã¨ã§ããã ã¹ã±ã¼ã«ããã ãã§ãªããéç¨ãå¤æ´ã®ã³ã¹ããæå°éã«ãªãããã«æé©åãã¦ããã¨æãã¾ããçµæçã« Android ã¢
ããã«ã¡ã¯éçºãã¼ã ã®å´çç§ã¨ç³ãã¾ãã ä»åã¯nginxã¨ããã¦ã§ããµã¼ãã¼ã«ã¤ãã¦è©±ãããã¦é ãã¾ãã nginxã¯æè¿æ°å¹´ã®éãã£ãã人æ°ãé«ããªã£ã¦ãã¾ããç¹ã«ãã使ããã¦ããApacheãLighttpdãªã©ã®ã¦ã§ããµã¼ãã¼ã¨æ§è½ã®é¢ã§æ¯è¼ãããã¨ãããããã¾ãã¦ãåªããæ§è½ã§åç´ãªstaticãã¡ã¤ã«ã転éããã¦ã§ããµã¼ãã¼ããCGIãµã¼ãã¼ãreverse proxyãµã¼ãã¼ãªã©ã®æ§ã ãªã¦ã§ããªã¯ã¨ã¹ãå¦çã«é¢ããåéã§å°å ¥ããã¦ãã¾ãã ä»æ¥ã¯nginxã®æ§è½ã®æ¯è¼ããããµã¼ãã¼ã®éçºè (nginx module)ãããã¯ãµã¼ãã¼ã®éå¶è ã¨ãã¦ã®nginxã«ããä»çµã®ä¸ã§ä¸ã¤ãç´¹ä»ãããã¨åãã¾ãã ãµã¼ãã¼ã®éçºãéå¶ãããå ´åãã¸ãã¯ãè¨å®ãªã©ã®å¤æ´ã«ããé å¸ã®å¾ããµã¼ãã¼ãåèµ·åãããã¨ãããã¾ãã ãã®åèµ·åã®æã«ã¦ã§ããµã¼ãã¹ã¨ãã¦ãªã¯ã¨ã¹ãã®å¦çãç¶ããªã
æè¿è©±é¡ã®nginxã«ã¤ãã«æãåºããã®ã§ããããnginxå ¥éãã¿ãããªããã°è¨äºãä¸åè¦å½ããããããã®ã¯è±èªã®ããã¥ã¡ã³ãè¨äºãããâ¦ã¨ããç¶æ³ã ã£ãã®ã§ãèªåãªãã«è¨³ãã¦ç解ããé¨åãå¿ããªãããè¦æ¸ã ä»node.jsãã¡ããã¡ãããã£ã¦ããã®ã§ãããããã¾ãç©åãå¢ãã§éçºãé²ãä¸ã«ããã®æ å ±ã®ã»ã¨ãã©ã¯è±èªãªããã§ãã¯ããããã³ãã«è±èªãèªããªãã¨ã©ããããããªããã ãªãã¨å®æãã¦ããããã§ããã¾ãstackoverflowã¨ãè¦ã¦ã¦ãããã¾ã§é£ããææ³ä½¿ã£ã¦ãããã§ããªãã®ã§ãè±èªãè¦ãç¬éã«æå¦åå¿èµ·ããããããªãããªãã¨ããªãããã§ããã ãæ¯åº¦æ¯åº¦ããã°é·ããæ»ããã¨ã¯ã¦ãã®ã³ã¡ã³ãã§è©±é¡ã®åã®ããã°ãä»æ¥ãé·ãã§ãã nginxã£ã¦ããããã©ãèªããã ã ãã¨ã³ã¸ã³ã¨ãã¯ã¹ãã¨èªã¿ã¾ããæ£ç´ããããã£ãããã§ããapacheã¨ãtomcatã¨ãnginxã¨ãããµã¼ã
[追è¨ï¼] æå¾ã§èª¬æãã¦ããproxy cacheã®è¨å®ãä¿®æ£ãã¾ããã [追è¨ï¼] nginx proxy cacheã§ãã£ãã·ã¥ããªãå ´åã®å¦çãå¤æ´ãã¾ããã [追è¨ï¼] ã¹ãã¼ããã©ã³ãæºå¸¯ã§é²è¦§ããæã«ãã£ãã·ã¥ããªãè¨å®ã追å ãã¾ããã ã¯ãã㫠大ãããªé¡åã§ãããä»åã¯WordPressåä½ãéãããã®ã§ã¯ãªãããã¼ã¿ãã¼ã¹ãWebãµã¼ããªã©ã®èª¿æ´ãã¾ãnginxã®proxy cacheæ©è½ã使ã£ã¦éããã話ã«ãªãã¾ãã ãµã¤ãã®æ§æã«ãã£ã¦ã¯ãproxy cacheã¯ä½¿ããªãããããã¾ãããã使ããªãã¦ã5åç¨åº¦éããããã¨ã¯ã§ãã¾ããã®ã§ãåèã«ãã¦ããã ããã°ã¨æãã¾ãã ä»åè¡ããã¥ã¼ãã³ã°ä¸è¦§ DBãæé©åãããã©ã°ã¤ã³ãå°å ¥ãã APCãå°å ¥ãã¦PHPãéããã MySQLãéããã éãWordPressãã©ã°ã¤ã³ãå¤ã nginx+FastCGIã«ãã W
ã©ã³ãã³ã°
ã©ã³ãã³ã°
ã©ã³ãã³ã°
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}