ËüÃDz»½ö¸ºÔðÍйÜÍøÕ¾ºÍÓ¦ÓóÌÐò£¬»¹³ÐÔØ×ÅÊý¾Ý´«Êä¡¢¸ºÔؾùºâ¡¢ÄÚÈÝ»º´æµÈһϵÁи´ÔÓÈÎÎñ
ÔÚÕâЩ·×·±¸´ÔӵķþÎñÆ÷Èí¼þÖУ¬Nginxƾ½èÆä׿ԽµÄÐÔÄÜ¡¢Áé»îµÄÅäÖú͹㷺µÄ¼æÈÝÐÔ£¬³ÉΪÁËÖڶ࿪·¢ÕߺÍÔËάÍŶӵÄÊ×Ñ¡
ÌØ±ðÊÇÔÚLinux²Ù×÷ϵͳÉÏ£¬Nginx¸üÊÇÒÔÆä³öÉ«µÄ±íÏÖ£¬Ó®µÃÁËÎÞÊýÔÞÓþ
±¾ÎĽ«ÉîÈë̽ÌÖLinux°æNginxµÄÓÅÊÆ¡¢Ó¦Óó¡¾°¡¢ÅäÖü¼Çɼ°ÆäÔÚÏÖ´úWeb¼Ü¹¹ÖеÄÖØÒªµØÎ»
Ò»¡¢Nginx¸ÅÊö Nginx£¨·¢ÒôΪ¡°engine x¡±£©ÊÇÒ»¿î¿ªÔ´µÄ¡¢¸ßÐÔÄܵÄHTTPºÍ·´Ïò´úÀí·þÎñÆ÷£¬Ò²ÊÇÒ»¸öIMAP/POP3´úÀí·þÎñÆ÷
ËüÓɶíÂÞ˹³ÌÐòÔ±Igor SysoevÓÚ2004ÄêÊ״η¢²¼£¬×Ôµ®ÉúÒÔÀ´£¬ÒòÆä³öÉ«µÄ²¢·¢´¦ÀíÄÜÁ¦¡¢µÍ×ÊÔ´ÏûºÄÒÔ¼°¸ß¶ÈµÄ¿ÉÀ©Õ¹ÐÔ£¬Ñ¸ËÙÔÚWeb·þÎñÆ÷Êг¡ÖÐÕ¼¾ÝÁËһϯ֮µØ
Nginx²ÉÓÃʼþÇý¶¯Ä£ÐÍ£¬Ó봫ͳµÄ»ùÓÚÏ̵߳ķþÎñÆ÷Ä£ÐÍÏà±È£¬Äܹ»¸ü¸ßЧµØ´¦Àí´óÁ¿²¢·¢Á¬½Ó£¬ÕâʹµÃËüÔÚ¸ßÁ÷Á¿ÍøÕ¾ºÍÓ¦ÓóÌÐòÖбíÏÖ³öÉ«
¶þ¡¢Linux°æNginxµÄÓÅÊÆ 1.¸ßÐÔÄÜÓëµÍ×ÊÔ´ÏûºÄ£ºNginxµÄÉè¼Æ³õÖÔ¾ÍÊÇ×·Çó¼«ÖµÄÐÔÄܺÍЧÂÊ
ÔÚLinuxƽ̨ÉÏ£¬NginxÄܹ»³ä·ÖÀûÓòÙ×÷ϵͳµÄÄÚºËÌØÐÔ£¬Èçepoll£¨ÔÚLinux 2.6¼°ÒÔÉϰ汾ÖÐÌṩµÄ¸ßЧI/Oʼþ֪ͨ»úÖÆ£©£¬ÊµÏָ߲¢·¢Á¬½Ó´¦Àí
ͬʱ£¬NginxµÄÄÚ´æÕ¼Óü«µÍ£¬¼´Ê¹ÔÚ´¦Àí´óÁ¿ÇëÇóʱ£¬Ò²Äܱ£³ÖϵͳµÄÎȶ¨ÔËÐÐ
2.Áé»îµÄÅäÖÃÓëÄ£¿é»¯Éè¼Æ£ºNginx²ÉÓÃÄ£¿é»¯Éè¼Æ£¬Óû§¿ÉÒÔ¸ù¾Ýʵ¼ÊÐèÇó£¬Ñ¡ÔñÆôÓûò½ûÓÃÌØ¶¨µÄ¹¦ÄÜÄ£¿é
ÕâÖÖÁé»îÐÔ²»½ö½µµÍÁËϵͳµÄ¸´ÔÓÐÔ£¬»¹Ê¹µÃNginxÄܹ»ÇáËÉÊÊÓ¦¸÷ÖÖÓ¦Óó¡¾°£¬´Ó¼òµ¥µÄ¾²Ì¬Îļþ·þÎñµ½¸´ÔӵĸºÔؾùºâ¡¢ÄÚÈÝ»º´æµÈ
3.·á¸»µÄµÚÈý·½Ä£¿é£ºNginxÓµÓÐÒ»¸öÅÓ´óµÄ¿ªÔ´ÉçÇø£¬ÉçÇøÖлîÔ¾×ÅÖڶ࿪·¢Õߣ¬ËûÃDz»¶Ï¹±Ï×еÄÄ£¿éºÍ¹¦ÄÜ£¬½øÒ»²½À©Õ¹ÁËNginxµÄÄÜÁ¦
ÕâЩµÚÈý·½Ä£¿éº¸ÇÁ˰²È«¡¢ÐÔÄÜÓÅ»¯¡¢ÈÕÖ¾¼Ç¼¡¢ÄÚÈÝ´¦ÀíµÈ¶à¸ö·½Ã棬ΪÓû§ÌṩÁ˼«´óµÄ±ãÀû
4.Ç¿´óµÄ·´Ïò´úÀíÓë¸ºÔØ¾ùºâÄÜÁ¦£ºNginx×÷Ϊ·´Ïò´úÀí·þÎñÆ÷£¬¿ÉÒÔÓÐЧµØÒþ²Øºó¶Ë·þÎñÆ÷µÄÕæÊµIPµØÖ·£¬Ìá¸ß°²È«ÐÔ
ͬʱ£¬NginxÄÚÖõĸºÔؾùºâ¹¦ÄÜÖ§³Ö¶àÖÖËã·¨£¨ÈçÂÖѯ¡¢×îÉÙÁ¬½Ó¡¢IP¹þÏ£µÈ£©£¬Äܹ»ÖÇÄܵؽ«ÇëÇó·Ö·¢µ½¶à¸öºó¶Ë·þÎñÆ÷ÉÏ£¬ÊµÏָ߿ÉÓÃÐԺ͸ºÔؾùºâ
5.¹ã·ºµÄ¼æÈÝÐÔ£ºNginxÖ§³Ö¼¸ºõËùÓÐÖ÷Á÷µÄ²Ù×÷ϵͳ£¬°üÀ¨Linux¡¢BSD¡¢macOSµÈ£¬ÇÒÔÚLinuxÉϱíÏÖÓÈΪ³öÉ«
´ËÍ⣬Nginx»¹Ö§³Ö¶àÖÖ±à³ÌÓïÑÔ±àдµÄÓ¦ÓóÌÐò£¬ÈçPHP¡¢Python¡¢RubyµÈ£¬Ê¹µÃËü³ÉΪ¹¹½¨ÏÖ´úWebÓ¦Óüܹ¹µÄÀíÏëÑ¡Ôñ
Èý¡¢Linux°æNginxµÄÓ¦Óó¡¾° 1.¾²Ì¬ÄÚÈÝ·þÎñ£ºNginx·Ç³£ÊʺÏ×÷Ϊ¾²Ì¬×ÊÔ´µÄ·þÎñÆ÷£¬ÈçHTML¡¢CSS¡¢JavaScript¡¢Í¼Æ¬µÈ
Æä¸ßЧµÄI/O´¦ÀíÄÜÁ¦Äܹ»Ñ¸ËÙÏìÓ¦¿Í»§¶ËÇëÇó£¬Ìṩ¿ìËÙµÄÄÚÈÝ·ÃÎÊÌåÑé
2.·´Ïò´úÀíÓë¸ºÔØ¾ùºâ£ºÔÚ΢·þÎñ¼Ü¹¹ºÍ·Ö²¼Ê½ÏµÍ³ÖУ¬Nginx³£±»ÓÃ×÷·´Ïò´úÀíºÍ¸ºÔؾùºâÆ÷£¬¸ºÔð½«ÍⲿÇëÇóת·¢µ½ÄÚ²¿ÍøÂçÖеĶà¸öÓ¦Ó÷þÎñÆ÷ÉÏ£¬ÊµÏÖ·þÎñµÄ¸ß¿ÉÓÃÐÔºÍÀ©Õ¹ÐÔ
3.HTTPS¼ÓÃÜ£ºËæ×ÅÍøÂ簲ȫÒâʶµÄÌáÉý£¬HTTPSÒѳÉΪWebͨÐŵıê×¼
NginxÔÉúÖ§³ÖSSL/TLSÐÒ飬¿ÉÒÔÇáËÉÅäÖÃHTTPS·þÎñ£¬±£»¤Êý¾Ý´«ÊäµÄ°²È«ÐÔ
4.ÄÚÈÝ»º´æ£ºNginxÖ§³Ö»ùÓÚÄÚ´æµÄ»º´æ»úÖÆ£¬Äܹ»»º´æ¾²Ì¬Îļþ¡¢¶¯Ì¬Ò³ÃæÉõÖÁÊý¾Ý¿â²éѯ½á¹û£¬ÏÔÖø¼õÉÙºó¶Ë·þÎñÆ÷µÄ¸ºÔØ£¬ÌáÉýÍøÕ¾µÄÕûÌåÐÔÄÜ
5.APIÍø¹Ø£ºÔÚ΢·þÎñ¼Ü¹¹ÖУ¬Nginx¿ÉÒÔ×÷ΪAPIÍø¹Ø£¬ÌṩÇëÇó·ÓÉ¡¢ÈÏÖ¤ÊÚȨ¡¢Á÷Á¿¿ØÖƵȹ¦ÄÜ£¬ÊµÏÖ΢·þÎñÖ®¼äµÄ°²È«¡¢¸ßЧͨÐÅ
ËÄ¡¢Linux°æNginxµÄÅäÖü¼ÇÉ 1.ÓÅ»¯È«¾ÖÅäÖ㺵÷Õûworker_processes¡¢`worker_connections`µÈ²ÎÊý£¬¸ù¾Ý·þÎñÆ÷µÄCPUºËÐÄÊýºÍÔ¤ÆÚµÄ×î´ó²¢·¢Á¬½ÓÊý½øÐкÏÀíÅäÖã¬ÒÔ´ïµ½×î¼ÑÐÔÄÜ
2.ÆôÓÃSSL/TLS£ºÔÚNginxÅäÖÃÎļþÖÐÌí¼ÓSSLÖ¤ÊéºÍÃÜÔ¿µÄ·¾¶£¬ÆôÓÃHTTPS·þÎñ
ͬʱ£¬¿ÉÒÔÅäÖÃHSTS£¨HTTP Strict Transport Security£©²ßÂÔ£¬Ç¿Öƿͻ§¶ËʹÓÃHTTPSÁ¬½Ó
3.ÉèÖ÷´Ïò´úÀí£ºÍ¨¹ýlocationÖ¸Á¶¨Ò岻ͬURL·¾¶µÄ´úÀí¹æÔò£¬½«ÇëÇóת·¢µ½ºó¶Ë·þÎñÆ÷ÉÏ
ʹÓÃ`proxy_pass`¡¢`proxy_set_header`µÈÖ¸Áȷ±£ÇëÇóÐÅÏ¢µÄÕýÈ·´«µÝ
4.ÅäÖøºÔؾùºâ£ºÔÚhttp¿éÖÐʹÓÃupstreamÖ¸ÁÒåÒ»¸ö·þÎñÆ÷×飬ȻºóÔÚ`server`¿éÖÐͨ¹ý`proxy_pass`Ö¸Ïò¸Ã·þÎñÆ÷×飬ʵÏÖ¸ºÔؾùºâ
¸ù¾Ýʵ¼ÊÐèÇóÑ¡ÔñºÏÊʵĸºÔؾùºâËã·¨
5.ÆôÓûº´æ£ºÊ¹ÓÃproxy_cache_pathÖ¸ÁîÉèÖûº´æÄ¿Â¼ºÍ»º´æ²ßÂÔ£¬ÔÚ`location`¿éÖÐÆôÓûº´æ¹¦ÄÜ£¬Í¨¹ý`proxy_cache`Ö¸ÁîÖ¸¶¨»º´æÇøÓò£¬Ìá¸ßÍøÕ¾ÏìÓ¦ËÙ¶È
6.ÈÕÖ¾¹ÜÀí£ººÏÀíÅäÖÃNginxµÄ·ÃÎÊÈÕÖ¾ºÍ´íÎóÈÕÖ¾£¬ÓÐÖúÓÚ¼à¿ØºÍ·ÖÎö·þÎñÆ÷µÄÔËÐÐ״̬£¬¼°Ê±·¢ÏÖ²¢½â¾öÎÊÌâ
Îå¡¢½áÓï Linux°æNginxÒÔÆä׿ԽµÄÐÔÄÜ¡¢Áé»îµÄÅäÖú͹㷺µÄ¼æÈÝÐÔ£¬³ÉΪÁËÏÖ´úWeb¼Ü¹¹Öв»¿É»òȱµÄÒ»²¿·Ö
ÎÞÂÛÊǹ¹½¨¸ßÐÔÄܵÄWebÕ¾µã£¬»¹ÊÇʵÏÖ¸´ÔÓµÄ΢·þÎñ¼Ü¹¹£¬Nginx¶¼ÄÜÌṩǿ´óµÄÖ§³Ö
ͨ¹ýÉîÈëѧϰºÍʵ¼ùNginxµÄÅäÖÃÓëÓÅ»¯¼¼ÇÉ£¬ÎÒÃÇ¿ÉÒÔ¸üºÃµØÀûÓÃÕâÒ»¹¤¾ß£¬ÌáÉýWeb·þÎñµÄÎȶ¨ÐÔºÍЧÂÊ£¬ÎªÓû§´øÀ´¸ü¼ÓÁ÷³©¡¢°²È«µÄÔÚÏßÌåÑé
Ëæ×ż¼ÊõµÄ²»¶Ï½ø²½ºÍÉçÇøµÄ³ÖÐø¹±Ï×£¬NginxµÄδÀ´ÎÞÒɽ«¸ü¼Ó¹âÃ÷£¬¼ÌÐøÒýÁìWeb·þÎñÆ÷¼¼ÊõµÄ·¢Õ¹³±Á÷