NGINXºÍPM2: ¹¹½¨µ¯ÐÔµÄÓ¦ÓÃЧÀÍ»ù´¡ÉèÊ©ºÍ×Ô¶¯À©Õ¹Õ½ÂÔ
NGINXºÍPM2: ¹¹½¨µ¯ÐÔµÄÓ¦ÓÃЧÀÍ»ù´¡ÉèÊ©ºÍ×Ô¶¯À©Õ¹Õ½ÂÔ£¬ÐèÒªÏêϸ´úÂëʾÀý
СÐò£º
Ëæ×ÅÔÆÅÌËãºÍÐéÄ⻯ÊÖÒÕµÄÒ»Ö±Éú³¤£¬µ¯ÐÔºÍ×Ô¶¯»¯ÒѾ³ÉΪÏÖ´úÓ¦ÓÃЧÀÍ»ù´¡ÉèÊ©µÄÒªº¦ÒªËØ¡£ÔÚ¹¹½¨Ò»¸öÄܹ»Ó¦¶Ô¸ßÁ÷Á¿ºÍ¸ºÔØÔöÌíµÄÓ¦ÓÃЧÀͼܹ¹Ê±£¬ÊÊÖÐÑ¡ÔñºÍÉèÖÃÊʵ±µÄ¹¤¾ß±äµÃºÜÊÇÖ÷Òª¡£±¾ÎĽ«ÏÈÈÝÁ½¸öÖ÷ÒªµÄ¹¤¾ß£ºNGINXºÍPM2£¬²¢ÌṩһЩ´úÂëʾÀý£¬À´Õ¹Ê¾ÔõÑùʹÓÃËüÃÇÀ´¹¹½¨µ¯ÐÔµÄÓ¦ÓÃЧÀÍ»ù´¡ÉèÊ©ºÍ×Ô¶¯À©Õ¹Õ½ÂÔ¡£
Ò»¡¢NGINX: ¸ºÔØƽºâºÍ·´ÏòÊðÀí
NGINXÊÇÒ»¸ö¸ßÐÔÄܵÄHTTPºÍ·´ÏòÊðÀíЧÀÍÆ÷£¬ËüÄܹ»´¦Öóͷ£À´×Ô¶à¸ö¿Í»§¶ËµÄÇëÇó²¢½«ËüÃÇ·Ö·¢µ½¶à¸öºó¶ËЧÀÍÆ÷ÉÏ£¬ÒÔʵÏÖ¸ºÔØƽºâºÍ¸ß¿ÉÓÃÐÔ¡£ÒÔÏÂÊÇÒ»¸ö¼òÆÓµÄNGINXÉèÖÃÎļþʾÀý£º
http { upstream backend { server backend1.example.com; server backend2.example.com; } server { listen 80; location / { proxy_pass http://backend; } } }
µÇ¼ºó¸´ÖÆ
ÔÚÉÏÃæµÄÉèÖÃÖУ¬ÎÒÃǽ¨ÉèÁËÒ»¸öÃûΪbackendµÄupstream¿é£¬ÆäÖаüÀ¨Á˶à¸öºó¶ËЧÀÍÆ÷µÄµØµã¡£È»ºó£¬ÎÒÃÇÔÚĬÈϵÄHTTPЧÀÍÆ÷¿éÖÐʹÓÃproxy_passÖ¸ÁîÀ´½«ËùÓеÄÇëÇóת·¢µ½Õâ¸öupstream¿é£¬ÊµÏÖ¸ºÔØƽºâ¡£
ʹÓÃNGINX×÷Ϊ¸ºÔØƽºâÆ÷µÄÀûÒæÊÇ£¬Ëü¿ÉÒÔ»ùÓÚÖÖÖÖËã·¨À´·Ö·¢Á÷Á¿£¬ºÃ±ÈÂÖѯ¡¢×îÉÙÅþÁ¬¡¢IP¹þÏ£µÈ¡£±ðµÄ£¬NGINX»¹¿ÉÒÔ¾ÙÐпµ½¡¼ì²é£¬ÈôÊÇij¸öºó¶ËЧÀÍÆ÷·ºÆð¹ÊÕÏ£¬Ëü½«×Ô¶¯½«ÇëÇóת·¢µ½ÆäËû¿µ½¡µÄЧÀÍÆ÷ÉÏ¡£
¶þ¡¢PM2: Àú³ÌÖÎÀíºÍ×Ô¶¯À©Õ¹
PM2ÊÇÒ»¸öÏÖ´ú»¯µÄÀú³ÌÖÎÀí¹¤¾ß£¬Ëü¿ÉÒÔ×ÊÖúÎÒÃÇÖÎÀíºÍ¼à¿ØNode.jsÓ¦ÓóÌÐòµÄÀú³Ì¡£ÒÔÏÂÊÇһЩ³£ÓõÄPM2ÏÂÁîʾÀý£º
Æô¶¯Ò»¸öÓ¦ÓóÌÐò£º
pm2 start app.js
µÇ¼ºó¸´ÖÆ
¼à¿ØËùÓÐÓ¦ÓóÌÐòµÄ״̬£º
pm2 list
µÇ¼ºó¸´ÖÆ
¼àÌýÎļþת±ä²¢×Ô¶¯ÖØÆôÓ¦ÓóÌÐò£º
pm2 start app.js --watch
µÇ¼ºó¸´ÖÆ
ÉèÖÃ×Ô¶¯À©Õ¹Õ½ÂÔ£º
pm2 scale app +4
µÇ¼ºó¸´ÖÆ
ÉÏÊö´úÂëʾÀýÖУ¬ÎÒÃÇÆô¶¯ÁËÒ»¸öÃûΪapp.jsµÄNode.jsÓ¦ÓóÌÐò£¬²¢Ê¹ÓÃÁË–watchÑ¡ÏîÀ´¼àÊÓÎļþת±ä£¬ÒÔ±ãÔÚÎļþ±¬·¢×ª±äʱ×Ô¶¯ÖØÆôÓ¦ÓóÌÐò¡£±ðµÄ£¬ÎÒÃÇ»¹Ê¹ÓÃÁËpm2 scaleÏÂÁîÀ´ÉèÖÃ×Ô¶¯À©Õ¹Õ½ÂÔ£¬Ê¹Ó¦ÓóÌÐòµÄʵÀýÊýÔöÌí4¸ö¡£
PM2»¹ÌṩÁËÐí¶àÆäËûÓÐÓõĹ¦Ð§£¬ºÃ±ÈÈÕÖ¾ÖÎÀí¡¢Àú³Ì¼à¿ØºÍ¹ÊÕϻָ´µÈ£¬ÕâЩ¹¦Ð§¶¼¿ÉÒÔ×ÊÖúÎÒÃǸüºÃµØÖÎÀíºÍά»¤Ó¦ÓóÌÐò¡£
Èý¡¢ÕûºÏNGINXºÍPM2ʵÏÖµ¯ÐÔÀ©Õ¹
ÏÖÔÚ£¬ÈÃÎÒÃÇ¿´¿´ÔõÑù½«NGINXºÍPM2ÕûºÏÆðÀ´£¬ÔÚÓ¦¶Ô¸ßÁ÷Á¿ºÍ¸ºÔØÔöÌíµÄÇéÐÎÏÂʵÏÖµ¯ÐÔÀ©Õ¹¡£
Ê×ÏÈ£¬ÎÒÃÇ¿ÉÒÔʹÓÃNGINX×÷Ϊ¸ºÔØƽºâÆ÷£¬½«Á÷Á¿·Ö·¢µ½¶à¸öPM2ʵÀýÉÏ¡£ÏêϸµØ˵£¬ÎÒÃÇ¿ÉÒÔ½¨ÉèÒ»¸öupstream¿é£¬²¢ÔÚÆäÖÐÁгö¶à¸öPM2ʵÀýµÄURL¡£È»ºó£¬ÎÒÃÇ¿ÉÒÔʹÓÃNGINXµÄ¸ºÔØƽºâËã·¨À´·Ö·¢Á÷Á¿¡£
Æä´Î£¬ÎÒÃÇ¿ÉÒÔʹÓÃPM2µÄ×Ô¶¯À©Õ¹¹¦Ð§À´¶¯Ì¬µØÔöÌí»òïÔÌÓ¦ÓóÌÐòµÄʵÀýÊý¡£ºÃ±È£¬µ±¸ºÔØÔöÌíʱ£¬ÎÒÃÇ¿ÉÒÔͨ¹ýʹÓÃpm2 scaleÏÂÁîÀ´Ìí¼Ó¸ü¶àµÄʵÀý¡£µ±¸ºÔØïÔÌʱ£¬ÎÒÃÇ¿ÉÒÔʹÓÃͬÑùµÄÏÂÁîÀ´ïÔÌʵÀýÊý¡£ÕâÑù£¬ÎÒÃǾͿÉÒÔƾ֤ÐèÒª×Ô¶¯À©Õ¹ºÍËõ¶ÌÓ¦ÓóÌÐòµÄÈÝÁ¿¡£
×îºó£¬ÎÒÃÇ»¹¿ÉÒÔʹÓÃPM2µÄ¼à¿ØºÍ¹ÊÕϻָ´¹¦Ð§À´ÊµÏÖ×Ô¶¯»¯µÄÔËά¡£ºÃ±È£¬µ±Ä³¸öPM2ʵÀý±ÀÀ£»ò·ºÆðÎÊÌâʱ£¬PM2»á×Ô¶¯ÖØÆô¸ÃʵÀý£¬²¢½«ÇëÇóת·¢µ½ÆäËû¿µ½¡µÄʵÀýÉÏ£¬°ü¹ÜÓ¦ÓóÌÐòµÄ¿ÉÓÃÐÔ¡£
½áÂÛ£º
NGINXºÍPM2Êǹ¹½¨µ¯ÐÔµÄÓ¦ÓÃЧÀÍ»ù´¡ÉèÊ©ºÍ×Ô¶¯À©Õ¹Õ½ÂÔµÄÖ÷Òª¹¤¾ß¡£Í¨¹ýʹÓÃNGINX×÷Ϊ¸ºÔØƽºâÆ÷ºÍ·´ÏòÊðÀí£¬ÎÒÃÇ¿ÉÒÔʵÏÖÁ÷Á¿µÄ·Ö·¢ºÍ¸ºÔØƽºâ¡£Í¨¹ýʹÓÃPM2×÷ΪÀú³ÌÖÎÀí¹¤¾ß£¬ÎÒÃÇ¿ÉÒÔʵÏÖÓ¦ÓóÌÐòµÄ×Ô¶¯»¯ÔËάºÍµ¯ÐÔÀ©Õ¹¡£Í¨¹ýÕûºÏNGINXºÍPM2£¬ÎÒÃÇ¿ÉÒÔ¹¹½¨³öÒ»¸öÎȹ̡¢¿É¿¿ºÍ¾ßÓÐ×Ô¶¯»¯À©Õ¹ÄÜÁ¦µÄÓ¦ÓÃЧÀÍ»ù´¡ÉèÊ©¡£
¸½Â¼£ºNGINXºÍPM2µÄ¹Ù·½ÎĵµÁ´½Ó£º
NGINX£ºhttps://nginx.org/en/docs/
PM2£ºhttps://pm2.keymetrics.io/docs/
ÒÔÉϾÍÊÇNGINXºÍPM2: ¹¹½¨µ¯ÐÔµÄÓ¦ÓÃЧÀÍ»ù´¡ÉèÊ©ºÍ×Ô¶¯À©Õ¹Õ½ÂÔµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡