NginxЧÀÍÆ÷µÄ¸ß¿ÉÓÃÐÔºÍÈÝ´íÐÔÉè¼ÆÔÔòÏê½â
NginxЧÀÍÆ÷µÄ¸ß¿ÉÓÃÐÔºÍÈÝ´íÐÔÉè¼ÆÔÔòÏê½â
Ëæ×ÅÅÌËã»úϵͳµÄÖØ´óÐÔÔöÌíºÍ¶Ô¸ß¿ÉÓÃÐÔºÍÈÝ´íÐÔµÄÐèÇóÈÕÒæÌá¸ß£¬Éè¼ÆÒ»¸öÎȹ̿ɿ¿µÄЧÀÍÆ÷±äµÃÓÈΪÖ÷Òª¡£NginxÊÇÒ»¸ö¸ßÐÔÄܵĿªÔ´WebЧÀÍÆ÷£¬Í¬Ê±Ò²ÊÇÒ»¸ö·´ÏòÊðÀíЧÀÍÆ÷¡¢¸ºÔØƽºâÆ÷ºÍHTTP»º´æЧÀÍÆ÷¡£NginxµÄÉè¼ÆÔÔòºÍ¹¦Ð§Ê¹Æä¾ß±¸ÁËÓÅÒìµÄ¸ß¿ÉÓÃÐÔºÍÈÝ´íÐÔ¡£±¾ÎĽ«ÏêϸÏÈÈÝNginxЧÀÍÆ÷µÄ¸ß¿ÉÓÃÐÔºÍÈÝ´íÐÔÉè¼ÆÔÔò£¬²¢ÌṩһЩ´úÂëʾÀý¡£
Ò»¡¢¸ß¿ÉÓÃÐÔÉè¼ÆÔÔò
¸ß¿ÉÓÃÐÔÊÇָϵͳ¼á³Ö³¤Ê±¼äµÄ¿ÉÓÃÐÔ£¬¼´ÔÚÃæÁÙÖÖÖÖ¹ÊÕϺÍÒì³£ÇéÐÎʱ£¬ÈÔÈ»Äܹ»ÌṩÕý³£µÄЧÀÍ¡£ÏÂÃæÊÇһЩʵÏָ߿ÉÓÃÐÔµÄÉè¼ÆÔÔò£º
¸ºÔØƽºâ
NginxµÄ¸ºÔØƽºâ¹¦Ð§¿ÉÒÔ½«ÇëÇó·Ö·¢µ½¶à¸öºó¶ËЧÀÍÆ÷ÉÏ£¬ÒÔÌá¸ßЧÀÍÆ÷µÄ¸ºÔØÄÜÁ¦¡£Í¨¹ýÉèÖÃupstreamÀ´Ö¸¶¨ºó¶ËЧÀÍÆ÷µÄµØµãºÍȨÖØ£¬ÈçÏÂËùʾ£º
http { upstream backend { server backend1.example.com weight=5; server backend2.example.com; server backend3.example.com down; } server { location / { proxy_pass http://backend; } } }
µÇ¼ºó¸´ÖÆ
ÔÚÉÏÊöÉèÖÃÖУ¬backend1µÄ¸ºÔØȨÖØÊÇ5£¬backend2µÄ¸ºÔØȨÖØÊÇ1£¬²¢ÇÒbackend3±»±ê¼ÇΪÏÂÏß״̬¡£Nginxƾ֤ȨÖغͿµ½¡¼ì²éµÈÕ½ÂÔÀ´·ÖÅÉÇëÇóµ½²î±ðµÄºó¶ËЧÀÍÆ÷ÉÏ¡£ÕâÖÖ¸ºÔØƽºâÕ½ÂÔ¿ÉÒÔÌá¸ßϵͳµÄ¿ÉÓÃÐÔºÍÍÌÍÂÁ¿¡£
¹ÊÕÏתÒÆ
NginxÖ§³Ö¹ÊÕÏתÒƹ¦Ð§£¬µ±Ä³¸öºó¶ËЧÀÍÆ÷å´»ú»ò·ºÆð¹ÊÕÏʱ£¬¿ÉÒÔ×Ô¶¯½«ÇëÇóת·¢µ½ÆäËûÕý³£µÄºó¶ËЧÀÍÆ÷ÉÏ¡£Í¨¹ýʹÓÃbackup²ÎÊýÀ´Ö¸¶¨±¸ÓÃЧÀÍÆ÷£¬ÈçÏÂËùʾ£º
http { upstream backend { server backend1.example.com; server backend2.example.com backup; } server { location / { proxy_pass http://backend; } } }
µÇ¼ºó¸´ÖÆ
ÔÚÉÏÊöÉèÖÃÖУ¬µ±backend1²»¿ÉÓÃʱ£¬ÇëÇó»á±»×ª·¢µ½backupЧÀÍÆ÷backend2ÉÏ¡£ÕâÖÖ¹ÊÕÏתÒÆÕ½ÂÔ¿ÉÒÔÌá¸ßϵͳµÄ¿ÉÓÃÐÔºÍÈÝ´íÐÔ¡£
¿ìËÙ¿µ½¡¼ì²é
Nginx¿ÉÒÔͨ¹ýÖ´ÐпìËٵĿµ½¡¼ì²éÀ´È·¶¨ºó¶ËЧÀÍÆ÷µÄ¿ÉÓÃÐÔ£¬´Ó¶øʵʱµØ·¢Ã÷¹ÊÕÏ»òÒì³£¡£Í¨¹ýÉèÖÃhealth_check_timeout²ÎÊýÀ´ÉèÖÿµ½¡¼ì²éµÄ³¬Ê±Ê±¼ä£¬ÈçÏÂËùʾ£º
http { upstream backend { server backend1.example.com; server backend2.example.com check interval=5s fail_timeout=3s; } server { location / { proxy_pass http://backend; } } }
µÇ¼ºó¸´ÖÆ
ÔÚÉÏÊöÉèÖÃÖУ¬Ã¿¸ô5ÃëÖÓ»á¶Ôbackend2¾ÙÐÐÒ»´Î¿µ½¡¼ì²é£¬ÈôÊÇÒ»Á¬3´Î¼ì²éʧ°Ü£¬ÔòÒÔΪbackend2²»¿ÉÓá£ÕâÖÖ¿ìËÙ¿µ½¡¼ì²éÕ½ÂÔ¿ÉÒÔÌá¸ßϵͳµÄ¿ÉÓÃÐԺ͹ÊÕÏÕï¶ÏÄÜÁ¦¡£
¶þ¡¢ÈÝ´íÐÔÉè¼ÆÔÔò
ÈÝ´íÐÔÊÇָϵͳ¹ØÓÚ¹ýʧºÍÒì³£µÄ´¦ÀíÄÜÁ¦£¬Äܹ»ÔÚÓöµ½¹ÊÕÏ»òÒì³£ÇéÐÎʱ¼á³ÖÕý³£µÄÔËÐС£ÏÂÃæÊÇһЩʵÏÖÈÝ´íÐÔµÄÉè¼ÆÔÔò£º
¹ýʧҳÉèÖÃ
Nginx¿ÉÒÔͨ¹ýÉèÖùýʧҳÀ´´¦ÀíһЩ³£¼ûµÄ¹ýʧÇéÐΣ¬ÈçÅþÁ¬³¬Ê±¡¢Ò³Ãæ²»±£´æµÈ¡£Í¨¹ýÉèÖÃerror_pageÀ´Ö¸¶¨¹ýʧҳµÄ·¾¶£¬ÈçÏÂËùʾ£º
http { server { ... error_page 404 /404.html; error_page 502 /502.html; ... } }
µÇ¼ºó¸´ÖÆ
ÔÚÉÏÊöÉèÖÃÖУ¬µ±·ºÆð404¹ýʧʱ£¬Nginx»áÖض¨Ïòµ½/404.htmlÒ³Ã棻µ±·ºÆð502¹ýʧʱ£¬»áÖض¨Ïòµ½/502.htmlÒ³Ãæ¡£ÕâÖÖ¹ýʧҳÉèÖÿÉÒÔÌá¸ßϵͳµÄÓû§ÌåÑéºÍÈÝ´íÐÔ¡£
Òì³£ÇëÇó´¦Àí
Nginx¿ÉÒÔͨ¹ýÉèÖÃclient_max_body_sizeÀ´ÏÞÖÆÇëÇóµÄ¾Þϸ£¬ÒÔ±ÜÃâ¶ñÒâ¹¥»÷»òÒì³£ÇëÇóµ¼ÖÂЧÀÍÆ÷Í߽⡣ͨ¹ýÉèÖÃclient_body_temp_pathÀ´Ö¸¶¨ÔÝʱÎļþĿ¼£¬ÒÔ´æ´¢ÇëÇó¹ý´óµÄÔÝʱÎļþ£¬ÈçÏÂËùʾ£º
http { client_max_body_size 10m; client_body_temp_path /path/to/temp/files; ... }
µÇ¼ºó¸´ÖÆ
ÔÚÉÏÊöÉèÖÃÖУ¬ÇëÇó¾ÞϸÏÞÖÆΪ10MB£¬Áè¼ÝÏÞÖƵÄÇëÇó»á±»¾Ü¾ø£¬²¢ÇÒÔÝʱÎļþ»á´æ´¢ÔÚÖ¸¶¨µÄĿ¼ÖС£ÕâÖÖÒì³£ÇëÇóµÄ´¦ÀíÕ½ÂÔ¿ÉÒÔÌá¸ßϵͳµÄÇå¾²ÐÔºÍÈÝ´íÐÔ¡£
¹ýʧÈÕÖ¾¼Í¼
Nginx¿ÉÒÔͨ¹ýÉèÖùýʧÈÕÖ¾À´¼Í¼±¬·¢µÄ¹ýʧºÍÒì³£ÐÅÏ¢£¬ÒÔ±ã¾ÙÐйÊÕÏÅŲéºÍÎÊÌⶨλ¡£Í¨¹ýÉèÖÃerror_log²ÎÊýÀ´Ö¸¶¨¹ýʧÈÕÖ¾µÄ·¾¶ºÍ¼¶±ð£¬ÈçÏÂËùʾ£º
error_log /path/to/error.log error;
µÇ¼ºó¸´ÖÆ
ÔÚÉÏÊöÉèÖÃÖУ¬¹ýʧÈÕÖ¾»á±»¼Í¼µ½Ö¸¶¨µÄÎļþÖУ¬²¢ÇÒÖ»¼Í¼¼¶±ðΪerrorµÄ¹ýʧÐÅÏ¢¡£ÕâÖÖ¹ýʧÈÕÖ¾¼Í¼սÂÔ¿ÉÒÔÌṩϵͳµÄ¹ÊÕÏÕï¶ÏºÍÎÊÌâ×·×ÙÄÜÁ¦¡£
×ܽ᣺
NginxµÄ¸ß¿ÉÓÃÐÔºÍÈÝ´íÐÔÉè¼ÆÔÔò°üÀ¨¸ºÔØƽºâ¡¢¹ÊÕÏתÒÆ¡¢¿ìËÙ¿µ½¡¼ì²é¡¢¹ýʧҳÉèÖá¢Òì³£ÇëÇó´¦ÀíºÍ¹ýʧÈÕÖ¾¼Í¼µÈ¡£Í¨¹ý×ñÕÕÕâЩÉè¼ÆÔÔò£¬²¢ÍŽáÏÖÕæÏàÐξÙÐÐÉèÖú͵÷½â£¬¿ÉÒÔ´ó´óÌáÉýNginxЧÀÍÆ÷µÄÎȹÌÐԺͿɿ¿ÐÔ¡£ÔÚÉè¼ÆºÍ°²ÅÅЧÀÍÆ÷ʱ£¬Îñ±Ø×¢ÖØ˼Á¿¸ß¿ÉÓÃÐÔºÍÈÝ´íÐÔ£¬ÒÔÈ·±£ÏµÍ³Äܹ»ÔÚÖÖÖÖÒì³£ÇéÐÎϼá³ÖÕý³£ÔËÐС£
ÒÔÉϾÍÊÇNginxЧÀÍÆ÷µÄ¸ß¿ÉÓÃÐÔºÍÈÝ´íÐÔÉè¼ÆÔÔòÏê½âµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡