ãä»çµã¿è§£èª¬ãNginxã¯ã©ããã£ãŠå€§éã®ãªã¯ãšã¹ãããã°ããŠããã®ã â ã€ãã³ãé§åã®ä»çµã¿ãå³è§£
Nginxã£ãŠããèããã©ãããããWebãµãŒããŒã£ãŠäœãããŠãã®ïŒ
WebãµãŒããŒã¯ããã©ãŠã¶ããã®ããã®ããŒãžãèŠããŠããšãããªã¯ãšã¹ããåãåã£ãŠãHTMLãç»åãªã©ãè¿ã圹å²ãããŠãããã ããã¬ã¹ãã©ã³ã§ãããšãã客ããã®æ³šæãåããŠæçãéãã§ãããŠã§ã€ã¿ãŒã¿ãããªãã®ã ãã
倧ããªéãã¯ãªã¯ãšã¹ãã®åŠçæ¹åŒã ããApacheã¯ãããã»ã¹ïŒã¹ã¬ããæ¹åŒãã§ããªã¯ãšã¹ããæ¥ããã³ã«æ åœè ã1人å²ãåœãŠãã€ã¡ãŒãžãäžæ¹Nginxã¯ãã€ãã³ãé§åæ¹åŒãã§ã1äººã®æ åœè ãè€æ°ã®ãªã¯ãšã¹ããåæã«ãã°ããã ãApacheã¯ãŠã§ã€ã¿ãŒã1ããŒãã«ã«1人ä»ãã¬ã¹ãã©ã³ãNginxã¯1人ã®ãŠã§ã€ã¿ãŒãå šããŒãã«ãå¹çããåããã¡ãã¬ã¹ã¿ãããªæãã ãã
1人ã§å šããŒãã«ã£ãŠå€§å€ããâŠã¡ãããšåããã®ïŒ
ãããNginxã®è³¢ããšããã§ããã€ãã³ãã«ãŒãããšããä»çµã¿ã䜿ã£ãŠãããã ããæ®éã¯æçãåºæ¥äžãããŸã§ãã®å Žã§åŸ ã£ã¡ãããã©ãNginxã¯ãæçãã§ãããåŒãã§ãããšäŒããŠããã®éã«å¥ã®ããŒãã«ã®å¯Ÿå¿ããããã ãåŸ ã¡æéããŒãã«ããŠæ¬¡ã ãšåŠçãããããå°ãªããªãœãŒã¹ã§å€§éã®ãªã¯ãšã¹ãããã°ãããã ãã
ãããå¹ççã ãïŒã§ãããªãã§ãããªæ¹åŒãçãŸããã®ïŒ
2000幎代åé ã«ãC10Kåé¡ããšããã®ã話é¡ã«ãªã£ããã ã1å°ã®ãµãŒããŒã§1äžä»¶ã®åææ¥ç¶ãåŠçã§ããªããšãã課é¡ã ããApacheã®ããã«ãªã¯ãšã¹ãããšã«ããã»ã¹ãäœãæ¹åŒã ãšã1äžæ¥ç¶ã§1äžããã»ã¹ãå¿ èŠã«ãªã£ãŠã¡ã¢ãªãè¶³ããªããªããNginxã¯ãã®åé¡ã解決ããããã«ãã€ãã³ãé§åã¢ãŒããã¯ãã£ã§èšèšããããã ãã
ãªããŒã¹ãããã·ã£ãŠããæ©èœãããã¿ããã ãã©ãããã¯äœãããŠãã®ïŒ
ãªããŒã¹ãããã·ã¯ãã¯ã©ã€ã¢ã³ããšã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã®éã«ç«ã€ã仲ä»åœ¹ãã ãããã©ãŠã¶ããã®ãªã¯ãšã¹ãããŸãNginxãåãåã£ãŠãè£åŽã«ããRailsãNode.jsãªã©ã®ã¢ããªãµãŒããŒã«è»¢éãããã ãããããããšã§ãã¢ããªãµãŒããŒãçŽæ¥ã€ã³ã¿ãŒãããã«ããããªããŠæžãããã»ãã¥ãªãã£ãäžããããSSLçµç«¯ãšãã£ãŠHTTPSã®æå·ååŠçãNginxã代ããã«åŒãåããŠããããã ãã
ããŒããã©ã³ãµãŒã£ãŠããã®ãèããããšããïŒãããNginxã§ã§ããã®ïŒ
ã§ãããïŒããŒããã©ã³ãµãŒã¯ãè€æ°ã®ã¢ããªãµãŒããŒã«ãªã¯ãšã¹ããæ¯ãåããæ©èœã ãã代衚çãªæ¹åŒã¯2ã€ãã£ãŠããã©ãŠã³ãããã³ãã¯é çªã«1å°ãã€æ¯ãåããæ¹åŒããIPããã·ã¥ãã¯åããŠãŒã¶ãŒãæ¯ååããµãŒããŒã«æ¯ãåããæ¹åŒã ããã¢ã¯ã»ã¹ãå€ããµãŒãã¹ã§ã¯ããµãŒããŒãå¢ãããŠNginxã§æ¯ãåããããšã§è² è·ã忣ãããŠãããã ã
éçãã¡ã€ã«ã®é ä¿¡ãNginxãåŸæã£ãŠèãããã©ãã©ãããããšïŒ
HTMLãCSSãç»åã®ãããªãå€ãããªããã¡ã€ã«ããè¿ãã ããªããããããã¢ããªãµãŒããŒãåããå¿ èŠããªããããNginxã¯ããããéçãã¡ã€ã«ã®é ä¿¡ããšãŠãé«éã§ãã«ãŒãã«ã®sendfileãšããä»çµã¿ã䜿ã£ãŠãã£ã¹ã¯ãããããã¯ãŒã¯ã«çŽæ¥ããŒã¿ãéãããã ãã¢ããªãµãŒããŒã®è² è·ãæžããããã«ãéçãã¡ã€ã«ã¯Nginxã«ä»»ããŠã¢ããªã®åŠçã ããããã¯ãšã³ãã«åãã®ãäžè¬çãªæ§æã ãã
Nginxã®èšå®ã£ãŠé£ãããã ãã©ãã©ããªæãã«ãªã£ãŠãã®ïŒ
Nginxã®èšå®ãã¡ã€ã«ã¯ããã£ã¬ã¯ãã£ãããšåŒã°ããåœä»€ããããã¯ã§å²ãæ§é ã«ãªã£ãŠããããäžçªå€åŽã«httpãããã¯ããã£ãŠããã®äžã«serverãããã¯ã§ãµã€ãããšã®èšå®ãæžããããã«locationãããã¯ã§URLãã¹ããšã®æ¯ãèããå®çŸ©ãããã ãããšãã°ãã¹ã©ãã·ã¥imagesã§å§ãŸãURLã¯éçãã¡ã€ã«ãè¿ããããã以å€ã¯ã¢ããªãµãŒããŒã«è»¢éãããã¿ããã«æžãããã
ãžããéå±€æ§é ã«ãªã£ãŠããã ãïŒã§ãå®éã®çŸå Žã§ã¯Nginxãšã¢ããªãµãŒããŒãã©ãçµã¿åãããŠãã®ïŒ
å žåçãªæ§æã¯ãã€ã³ã¿ãŒãããåŽãããŸãNginxããªã¯ãšã¹ããåããŠãSSLçµç«¯ã§æå·åãè§£é€ããéçãã¡ã€ã«ãªããã®ãŸãŸè¿ããåçãªãªã¯ãšã¹ããªããªããŒã¹ãããã·ã§ããã¯ãšã³ãã«è»¢éãããããã¯ãšã³ããè€æ°å°ããã°ããŒããã©ã³ã·ã³ã°ããããããã«Nginxã¯ã¬ã¹ãã³ã¹ããã£ãã·ã¥ããæ©èœããã£ãŠãåããªã¯ãšã¹ããæ¥ããããã¯ãšã³ãã«èããã«ãã£ãã·ã¥ããå³åº§ã«è¿ãããã ã1å°ã§äœåœ¹ãããªããããWebã€ã³ãã©ã®èŠã«ãªã£ãŠãããã ãã
Nginxã£ãŠæ¬åœã«äžèœãªãã ãïŒ1人ã§äœåœ¹ãããªãã¹ãŒããŒãŠã§ã€ã¿ãŒã£ãŠããšãïŒ
ãã®ããšãã¯ãŸãã«ãŽã£ããã ããã¡ãªã¿ã«Nginxã¯äžçã®Webãµã€ãã®çŽ3åã®1ã§äœ¿ãããŠããŠãNetflixãDropboxãªã©å€§èŠæš¡ãµãŒãã¹ã§ãæ¡çšãããŠããããæè¿ã¯ã¯ã©ãŠãç°å¢ã§Kubernetesã®Ingress ControllerãšããŠã掻èºããŠããŠãã³ã³ãããžã®ãã©ãã£ãã¯å¶åŸ¡ã«ã䜿ãããŠãããã ã軜éã§é«æ§èœãªNginxã®èšèšææ³ã¯ãçŸä»£ã®Webã€ã³ãã©ã«æ¬ ãããªãååšã«ãªã£ãŠãããã ãã