ÔõÑùʹÓÃNGINXºÍPM2ÓÅ»¯VPSЧÀÍÆ÷µÄ¸ºÔØƽºâ
ÔõÑùʹÓÃNGINXºÍPM2ÓÅ»¯VPSЧÀÍÆ÷µÄ¸ºÔØƽºâ
СÐò£º
ÔÚÏÖ´úµÄWebÓ¦ÓóÌÐòÖУ¬¸ºÔØƽºâÊǺÜÊÇÒªº¦µÄÒ»ÏîÊÖÒÕ¡£Ëü¿ÉÒÔͨ¹ý½«Á÷Á¿ÊèÉ¢µ½¶à¸öЧÀÍÆ÷ÉÏ£¬Ìá¸ßÓ¦ÓóÌÐòµÄ¿ÉÉìËõÐԺͿɿ¿ÐÔ¡£ÔÚ±¾ÎÄÖУ¬ÎÒÃǽ«ÏÈÈÝÔõÑùʹÓÃNGINXºÍPM2À´ÓÅ»¯VPSЧÀÍÆ÷µÄ¸ºÔØƽºâ¡£ÎÒÃǽ«Í¨¹ýÏêϸµÄ´úÂëʾÀý£¬ÏêϸÐðÊöÿ¸ö°ì·¨¡£
°ì·¨Ò»£º×°ÖÃNGINX
Ê×ÏÈ£¬ÎÒÃÇÐèҪװÖÃNGINX£¬ËüÊÇÒ»¸ö¸ßÐÔÄܵÄWebЧÀÍÆ÷ºÍ·´ÏòÊðÀíЧÀÍÆ÷¡£ÒÔÏÂÊÇÔÚUbuntuÉÏ×°ÖÃNGINXµÄÌض¨ÃüÁ
$ apt-get update $ apt-get install nginx
µÇ¼ºó¸´ÖÆ
°ì·¨¶þ£ºÉèÖÃNGINX
Ò»µ©×°ÖÃÍê³É£¬ÎÒÃÇÐèÒª¶ÔNGINX¾ÙÐÐһЩÉèÖá£ÒÔÏÂÊÇÒ»¸öʾÀýÉèÖÃÎļþµÄÄÚÈÝ£º
http { upstream backend { server backend1.example.com; server backend2.example.com; } server { listen 80; location / { proxy_pass http://backend; } } }
µÇ¼ºó¸´ÖÆ
ÉÏÊöʾÀýÖУ¬ÎÒÃÇÉèÖÃÁËÒ»¸öÃûΪbackendµÄЧÀÍÆ÷¼¯Èº£¬ÆäÖаüÀ¨Á½¸öºó¶ËЧÀÍÆ÷backend1.example.comºÍbackend2.example.com¡£È»ºó£¬ÎÒÃǽ«¼àÌý80¶Ë¿Ú£¬²¢½«ËùÓÐÁ÷Á¿ÊðÀíµ½backendЧÀÍÆ÷¼¯Èº¡£
°ì·¨Èý£º×°ÖÃPM2
½ÓÏÂÀ´£¬ÎÒÃÇÐèҪװÖÃPM2Àú³ÌÖÎÀíÆ÷¡£PM2¿ÉÒÔ×ÊÖúÎÒÃÇÔÚЧÀÍÆ÷ÉÏÆô¶¯ºÍÖÎÀíNode.jsÓ¦ÓóÌÐò¡£ÒÔÏÂÊÇÔÚUbuntuÉÏ×°ÖÃPM2µÄÌض¨ÃüÁ
$ npm install pm2 -g
µÇ¼ºó¸´ÖÆ
°ì·¨ËÄ£ºÔÚºó¶ËЧÀÍÆ÷ÉÏ°²ÅÅÓ¦ÓóÌÐò
ÔÚÎÒÃǼÌÐø֮ǰ£¬ÎÒÃÇÐèÒªÔÚºó¶ËЧÀÍÆ÷ÉÏ°²ÅÅÒ»¸ö¼òÆÓµÄNode.jsÓ¦ÓóÌÐò¡£ÒÔÏÂÊÇÒ»¸ö¼òÆÓµÄExpressÓ¦ÓóÌÐòµÄʾÀý´úÂ룺
const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hello, World!'); }); app.listen(3000, () => { console.log('App is running on port 3000'); });
µÇ¼ºó¸´ÖÆ
½«ÉÏÊö´úÂëÉúÑÄΪapp.js£¬²¢ÔÚºó¶ËЧÀÍÆ÷ÉÏÔËÐÐÒÔÏÂÏÂÁîÒÔÆô¶¯Ó¦ÓóÌÐò£º
$ node app.js
µÇ¼ºó¸´ÖÆ
ÏÖÔÚ£¬ÎÒÃǵÄÓ¦ÓóÌÐòÓ¦¸Ã¿ÉÒÔͨ¹ý»á¼ûhttp://backend1.example.com:3000À´¾ÙÐлá¼û¡£
°ì·¨Î壺ʹÓÃPM2ÔÚºó¶ËЧÀÍÆ÷ÉÏÆô¶¯Ó¦ÓóÌÐò
ΪÁËÄܹ»Ê¹ÓÃPM2¾ÙÐÐÀú³ÌÖÎÀí£¬ÎÒÃÇÐèÒª½øÈëÓ¦ÓóÌÐòËùÔÚĿ¼£¬²¢Ê¹ÓÃÒÔÏÂÏÂÁîÆô¶¯Ó¦ÓóÌÐò£º
$ pm2 start app.js
µÇ¼ºó¸´ÖÆ
ÒÔÉÏÏÂÁӦÓóÌÐò×÷Ϊһ¸öÊØ»¤Àú³ÌÔÚºǫ́ÔËÐУ¬²¢×Ô¶¯´¦ÀíÓ¦ÓóÌÐòµÄÖØÆôºÍÈÕÖ¾ÖÎÀíµÈÊÂÏî¡£
°ì·¨Áù£ºÔÚNGINXÖÐÉèÖøºÔØƽºâ
ÏÖÔÚ£¬ÎÒÃÇÒѾÉèÖÃÁËNGINXºÍÔÚºó¶ËЧÀÍÆ÷ÉÏÆô¶¯ÁËNode.jsÓ¦ÓóÌÐò¡£ÎÒÃÇÐèÒªÐÞ¸ÄNGINXµÄÉèÖÃÎļþ£¬ÒÔʵÏÖ¸ºÔØƽºâ¡£ÒÔÏÂÊÇÐ޸ĺóµÄʾÀýÉèÖÃÎļþÄÚÈÝ£º
http { upstream backend { server backend1.example.com:3000; server backend2.example.com:3000; } server { listen 80; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } }
µÇ¼ºó¸´ÖÆ
ÉÏÊöÉèÖÃÎļþÖУ¬ÎÒÃǽ«ºó¶ËЧÀÍÆ÷µÄ¶Ë¿Ú´Ó80¸ÄΪ3000£¬²¢¼ÓÈëÁËproxy_set_headerÖ¸ÁîÀ´×ª´ïһЩҪº¦µÄHTTPÍ·ÐÅÏ¢¡£
°ì·¨ÆߣºÖØÆôNGINXºÍPM2ЧÀÍ
ÔÚÎÒÃǾÙÐиºÔØƽºâ²âÊÔ֮ǰ£¬ÎÒÃÇÐèÒªÖØÆôNGINXºÍPM2ЧÀÍÒÔʹ¸ü¸ÄÉúЧ¡£ÒÔÏÂÊÇÖØÆôÏÂÁ
$ service nginx restart $ pm2 restart all
µÇ¼ºó¸´ÖÆ
°ì·¨°Ë£º²âÊÔ¸ºÔØƽºâ
ÏÖÔÚ£¬ÎÒÃÇ¿ÉÒÔʹÓÃWebä¯ÀÀÆ÷»òÕßcurlÏÂÁîÀ´²âÊÔ¸ºÔØƽºâÊÇ·ñÕý³£ÊÂÇé¡£ÎÒÃÇÓ¦¸ÃÄܹ»Í¨¹ý»á¼ûhttp://yourdomain.comÀ´»ñÈ¡¡°Hello, World!¡±µÄÏìÓ¦¡£Ã¿´ÎË¢ÐÂÒ³Ã棬ÎÒÃǶ¼Ó¦¸Ã¿´µ½ºó¶ËЧÀÍÆ÷µÄ²î±ðЧÀÍÆ÷Ãû³Æ£¬ÕâÒâζןºÔØƽºâÒѾÉúЧ¡£
½áÂÛ£º
ͨ¹ýʹÓÃNGINXºÍPM2£¬ÎÒÃÇ¿ÉÒÔÇáËɵØʵÏÖVPSЧÀÍÆ÷ÉϵĸºÔØƽºâ¡£¸ºÔØƽºâ¿ÉÒÔÌá¸ßÓ¦ÓóÌÐòµÄ¿ÉÉìËõÐԺͿɿ¿ÐÔ£¬´Ó¶ø¸üºÃµØΪÓû§ÌṩЧÀÍ¡£Ï£Íû±¾ÎÄËùÌṩµÄÏêϸ´úÂëʾÀýºÍ°ì·¨Äܹ»×ÊÖú¶ÁÕ߸üºÃµØ¾ÙÐÐЧÀÍÆ÷ÓÅ»¯ºÍ¸ºÔØƽºâµÄʵ¼ù¡£
ÒÔÉϾÍÊÇÔõÑùʹÓÃNGINXºÍPM2ÓÅ»¯VPSЧÀÍÆ÷µÄ¸ºÔØƽºâµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡