{"id":19186,"date":"2026-06-19T01:13:10","date_gmt":"2026-06-18T21:43:10","guid":{"rendered":"https:\/\/rasanegaar.com\/blog\/node-js-%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d8%b9%d9%85%d9%84%da%a9%d8%b1%d8%af-%d8%a8%d8%b1%d8%a7%db%8c-%d9%85%db%8c%d8%b2%d8%a8%d8%a7%d9%86%db%8c-vps-%d8%aa%d9%88%d9%84%db%8c\/"},"modified":"2026-06-19T01:25:40","modified_gmt":"2026-06-18T21:55:40","slug":"node-js-%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d8%b9%d9%85%d9%84%da%a9%d8%b1%d8%af-%d8%a8%d8%b1%d8%a7%db%8c-%d9%85%db%8c%d8%b2%d8%a8%d8%a7%d9%86%db%8c-vps-%d8%aa%d9%88%d9%84%db%8c","status":"publish","type":"post","link":"https:\/\/rasanegaar.com\/blog\/node-js-%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d8%b9%d9%85%d9%84%da%a9%d8%b1%d8%af-%d8%a8%d8%b1%d8%a7%db%8c-%d9%85%db%8c%d8%b2%d8%a8%d8%a7%d9%86%db%8c-vps-%d8%aa%d9%88%d9%84%db%8c\/","title":{"rendered":"Node.js \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0631\u0627\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc VPS \u062a\u0648\u0644\u06cc\u062f"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0633\u0631\u0641\u0635\u0644\u0647\u0627\u06cc \u0645\u0637\u0644\u0628<\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/rasanegaar.com\/blog\/node-js-%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d8%b9%d9%85%d9%84%da%a9%d8%b1%d8%af-%d8%a8%d8%b1%d8%a7%db%8c-%d9%85%db%8c%d8%b2%d8%a8%d8%a7%d9%86%db%8c-vps-%d8%aa%d9%88%d9%84%db%8c\/#%da%86%d8%b1%d8%a7_%d8%aa%d9%86%d8%b8%db%8c%d9%85_%d8%b9%d9%85%d9%84%da%a9%d8%b1%d8%af_nodejs_%d8%a7%d9%87%d9%85%db%8c%d8%aa_%d8%af%d8%a7%d8%b1%d8%af%d8%9f_%d8%b1%d9%88%db%8c_%db%8c%da%a9_vps_%d8%aa%d9%88%d9%84%db%8c%d8%af\" >\u0686\u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0639\u0645\u0644\u06a9\u0631\u062f Node.js \u0627\u0647\u0645\u06cc\u062a \u062f\u0627\u0631\u062f\u061f \u0631\u0648\u06cc \u06cc\u06a9 VPS \u062a\u0648\u0644\u06cc\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/rasanegaar.com\/blog\/node-js-%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d8%b9%d9%85%d9%84%da%a9%d8%b1%d8%af-%d8%a8%d8%b1%d8%a7%db%8c-%d9%85%db%8c%d8%b2%d8%a8%d8%a7%d9%86%db%8c-vps-%d8%aa%d9%88%d9%84%db%8c\/#%d8%b1%d8%a7%db%8c%d8%ac_%d8%aa%d8%b1%db%8c%d9%86_%da%af%d9%84%d9%88%da%af%d8%a7%d9%87_%d9%87%d8%a7%db%8c_%d8%b9%d9%85%d9%84%da%a9%d8%b1%d8%af_nodejs_%da%86%db%8c%d8%b3%d8%aa%d8%9f\" >\u0631\u0627\u06cc\u062c \u062a\u0631\u06cc\u0646 \u06af\u0644\u0648\u06af\u0627\u0647 \u0647\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f Node.js \u0686\u06cc\u0633\u062a\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/rasanegaar.com\/blog\/node-js-%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d8%b9%d9%85%d9%84%da%a9%d8%b1%d8%af-%d8%a8%d8%b1%d8%a7%db%8c-%d9%85%db%8c%d8%b2%d8%a8%d8%a7%d9%86%db%8c-vps-%d8%aa%d9%88%d9%84%db%8c\/#%da%86%da%af%d9%88%d9%86%d9%87_%d8%aa%d8%b9%d8%af%d8%a7%d8%af_%d8%ae%d9%88%d8%b4%d9%87_%d9%88_%da%a9%d8%a7%d8%b1%da%af%d8%b1_nodejs_%d8%af%d8%b1%d8%b3%d8%aa_%d8%b1%d8%a7_%d8%aa%d9%86%d8%b8%db%8c%d9%85_%d9%85%db%8c_%da%a9%d9%86%db%8c%d8%af%d8%9f\" >\u0686\u06af\u0648\u0646\u0647 \u062a\u0639\u062f\u0627\u062f \u062e\u0648\u0634\u0647 \u0648 \u06a9\u0627\u0631\u06af\u0631 Node.js \u062f\u0631\u0633\u062a \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/rasanegaar.com\/blog\/node-js-%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d8%b9%d9%85%d9%84%da%a9%d8%b1%d8%af-%d8%a8%d8%b1%d8%a7%db%8c-%d9%85%db%8c%d8%b2%d8%a8%d8%a7%d9%86%db%8c-vps-%d8%aa%d9%88%d9%84%db%8c\/#%da%a9%d8%af%d8%a7%d9%85_%d8%aa%d9%86%d8%b8%db%8c%d9%85%d8%a7%d8%aa_pm2_%d9%88_process_manager_%d8%ab%d8%a8%d8%a7%d8%aa_%d8%b1%d8%a7_%d8%a8%d9%87%d8%a8%d9%88%d8%af_%d9%85%db%8c_%d8%a8%d8%ae%d8%b4%d8%af%d8%9f\" >\u06a9\u062f\u0627\u0645 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a PM2 \u0648 Process Manager \u062b\u0628\u0627\u062a \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0645\u06cc \u0628\u062e\u0634\u062f\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/rasanegaar.com\/blog\/node-js-%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d8%b9%d9%85%d9%84%da%a9%d8%b1%d8%af-%d8%a8%d8%b1%d8%a7%db%8c-%d9%85%db%8c%d8%b2%d8%a8%d8%a7%d9%86%db%8c-vps-%d8%aa%d9%88%d9%84%db%8c\/#%da%86%da%af%d9%88%d9%86%d9%87_%d8%a8%d8%a7%db%8c%d8%af_nginx_%d8%b1%d8%a7_%d8%a8%d9%87_%d8%b9%d9%86%d9%88%d8%a7%d9%86_%db%8c%da%a9_%d9%be%d8%b1%d9%88%da%a9%d8%b3%db%8c_%d9%85%d8%b9%da%a9%d9%88%d8%b3_%d8%a8%d8%b1%d8%a7%db%8c_nodejs_%d9%be%db%8c%da%a9%d8%b1%d8%a8%d9%86%d8%af%db%8c_%da%a9%d9%86%db%8c%d8%af%d8%9f\" >\u0686\u06af\u0648\u0646\u0647 \u0628\u0627\u06cc\u062f Nginx \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633 \u0628\u0631\u0627\u06cc Node.js \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/rasanegaar.com\/blog\/node-js-%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d8%b9%d9%85%d9%84%da%a9%d8%b1%d8%af-%d8%a8%d8%b1%d8%a7%db%8c-%d9%85%db%8c%d8%b2%d8%a8%d8%a7%d9%86%db%8c-vps-%d8%aa%d9%88%d9%84%db%8c\/#%da%86%d9%87_%d9%be%d8%b1%da%86%d9%85_%d9%87%d8%a7%db%8c_%d8%ad%d8%a7%d9%81%d8%b8%d9%87_%d9%88_%d8%ac%d9%85%d8%b9_%d8%a2%d9%88%d8%b1%db%8c_%d8%b2%d8%a8%d8%a7%d9%84%d9%87_%d8%b1%d8%a7_%d8%a8%d8%a7%db%8c%d8%af_%d8%aa%d9%86%d8%b8%db%8c%d9%85_%da%a9%d9%86%db%8c%d8%af%d8%9f\" >\u0686\u0647 \u067e\u0631\u0686\u0645 \u0647\u0627\u06cc \u062d\u0627\u0641\u0638\u0647 \u0648 \u062c\u0645\u0639 \u0622\u0648\u0631\u06cc \u0632\u0628\u0627\u0644\u0647 \u0631\u0627 \u0628\u0627\u06cc\u062f \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/rasanegaar.com\/blog\/node-js-%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d8%b9%d9%85%d9%84%da%a9%d8%b1%d8%af-%d8%a8%d8%b1%d8%a7%db%8c-%d9%85%db%8c%d8%b2%d8%a8%d8%a7%d9%86%db%8c-vps-%d8%aa%d9%88%d9%84%db%8c\/#%da%86%da%af%d9%88%d9%86%d9%87_%db%8c%da%a9_%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87_slow_nodejs_%d8%b1%d8%a7_%d9%86%d9%85%d8%a7%db%8c%d9%87_%d9%85%db%8c_%da%a9%d9%86%db%8c%d8%af%d8%9f\" >\u0686\u06af\u0648\u0646\u0647 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 Slow Node.js \u0631\u0627 \u0646\u0645\u0627\u06cc\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/rasanegaar.com\/blog\/node-js-%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d8%b9%d9%85%d9%84%da%a9%d8%b1%d8%af-%d8%a8%d8%b1%d8%a7%db%8c-%d9%85%db%8c%d8%b2%d8%a8%d8%a7%d9%86%db%8c-vps-%d8%aa%d9%88%d9%84%db%8c\/#%da%a9%d8%af%d8%a7%d9%85_%d9%84%d8%a7%db%8c%d9%87_%d9%87%d8%a7%db%8c_%da%a9%d8%b4_%d8%a8%db%8c%d8%b4%d8%aa%d8%b1%db%8c%d9%86_%d8%aa%d9%81%d8%a7%d9%88%d8%aa_%d8%b1%d8%a7_%d8%af%d8%a7%d8%b1%d9%86%d8%af%d8%9f\" >\u06a9\u062f\u0627\u0645 \u0644\u0627\u06cc\u0647 \u0647\u0627\u06cc \u06a9\u0634 \u0628\u06cc\u0634\u062a\u0631\u06cc\u0646 \u062a\u0641\u0627\u0648\u062a \u0631\u0627 \u062f\u0627\u0631\u0646\u062f\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/rasanegaar.com\/blog\/node-js-%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d8%b9%d9%85%d9%84%da%a9%d8%b1%d8%af-%d8%a8%d8%b1%d8%a7%db%8c-%d9%85%db%8c%d8%b2%d8%a8%d8%a7%d9%86%db%8c-vps-%d8%aa%d9%88%d9%84%db%8c\/#%da%86%da%af%d9%88%d9%86%d9%87_vps_%d8%aa%d9%88%d9%84%db%8c%d8%af_nodejs_%d8%b1%d8%a7_%d8%a7%db%8c%d9%85%d9%86_%d9%85%db%8c_%da%a9%d9%86%db%8c%d8%af%d8%9f\" >\u0686\u06af\u0648\u0646\u0647 VPS \u062a\u0648\u0644\u06cc\u062f Node.js \u0631\u0627 \u0627\u06cc\u0645\u0646 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u061f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/rasanegaar.com\/blog\/node-js-%d8%a8%d9%87%db%8c%d9%86%d9%87-%d8%b3%d8%a7%d8%b2%db%8c-%d8%b9%d9%85%d9%84%da%a9%d8%b1%d8%af-%d8%a8%d8%b1%d8%a7%db%8c-%d9%85%db%8c%d8%b2%d8%a8%d8%a7%d9%86%db%8c-vps-%d8%aa%d9%88%d9%84%db%8c\/#%da%86%d9%87_%d8%b2%d9%85%d8%a7%d9%86%db%8c_%d8%a8%d8%a7%db%8c%d8%af_%d9%81%d8%b1%d8%a7%d8%aa%d8%b1_%d8%a7%d8%b2_%db%8c%da%a9_vps_%d9%88%d8%a7%d8%ad%d8%af_%d9%85%d9%82%db%8c%d8%a7%d8%b3_%da%a9%d9%86%db%8c%d8%af%d8%9f\" >\u0686\u0647 \u0632\u0645\u0627\u0646\u06cc \u0628\u0627\u06cc\u062f \u0641\u0631\u0627\u062a\u0631 \u0627\u0632 \u06cc\u06a9 VPS \u0648\u0627\u062d\u062f \u0645\u0642\u06cc\u0627\u0633 \u06a9\u0646\u06cc\u062f\u061f<\/a><\/li><\/ul><\/nav><\/div>\n<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">\u0632\u0645\u0627\u0646 \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0645\u0637\u0627\u0644\u0639\u0647: <\/span> <span class=\"rt-time\"> 9<\/span> <span class=\"rt-label rt-postfix\">\u062f\u0642\u06cc\u0642\u0647<\/span><\/span><p> <br \/>\n<\/p>\n<div class=\"entry-content\">\n<figure class=\"wp-block-image size-large\"><\/figure>\n<p class=\"wp-block-paragraph\">\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u062a\u0646\u0638\u06cc\u0645\u06cc \u0631\u0627 \u067e\u0648\u0634\u0634 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u062f\u0631 \u0648\u0627\u0642\u0639 \u062a\u0627\u062e\u06cc\u0631 p95 \u0648 \u0638\u0631\u0641\u06cc\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0645\u0632\u0645\u0627\u0646 \u0631\u0627 \u062c\u0627\u0628\u062c\u0627 \u0645\u06cc \u06a9\u0646\u062f \u0631\u0648\u06cc \u06cc\u06a9 VPS \u062a\u0648\u0644\u06cc\u062f\u06cc\u060c \u0628\u0627 \u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0647 \u062f\u0631 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0648\u0627\u0642\u0639\u06cc \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u0633\u062a.<\/p>\n<p>            <!-- jtoc progress bar widget --><\/p>\n<div class=\"wpj-jtoc--widget-progress --progress-top\">\n<div class=\"wpj-jtoc--widget-progress-bar\"><\/div><\/div>\n<div id=\"wpj-jtoc\" class=\"wpj-jtoc wpj-jtoc--main  --jtoc-the-content --jtoc-theme-basic-light --jtoc-title-align-left --jtoc-toggle-icon --jtoc-toggle-position-right --jtoc-toggle-1 --jtoc-bullet-points --jtoc-has-custom-styles --jtoc-is-unfolded --jtoc-align-left\">\n<p>    <!-- TOC --><\/p>\n<div class=\"wpj-jtoc--toc wpj-jtoc--toc-inline \">\n<div class=\"wpj-jtoc--header\">\n<div class=\"wpj-jtoc--header-main\">\n<div class=\"wpj-jtoc--title\">\n                                                <span class=\"wpj-jtoc--title-label\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/span>\n                    <\/div>\n<div class=\"wpj-jtoc--toggle-wrap\">\n<div class=\"wpj-jtoc--toggle-box\">\n<div class=\"wpj-jtoc--toggle\"><\/div><\/div><\/div><\/div><\/div>\n<div class=\"wpj-jtoc--body\">\n<nav class=\"wpj-jtoc--nav\">\n<ol class=\"wpj-jtoc--items\">\n<li class=\"wpj-jtoc--item --jtoc-h2\">\n<div class=\"wpj-jtoc--item-content --jtoc-h2\" data-depth=\"2\">\n<div class=\"jtoc--bullet\">\n<div class=\"--bullet-inner\"><\/div>\n<\/div>\n<p>                        <a href=\"#why-nodejs-performance-tuning-matters-on-a-production-vps\" title=\"Why Node.js Performance Tuning Matters on a Production VPS\" data-numeration=\"1\">\u0686\u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0639\u0645\u0644\u06a9\u0631\u062f Node.js \u0627\u0647\u0645\u06cc\u062a \u062f\u0627\u0631\u062f\u061f \u0631\u0648\u06cc \u06cc\u06a9 VPS \u062a\u0648\u0644\u06cc\u062f<\/a>\n                    <\/div>\n<\/li>\n<li class=\"wpj-jtoc--item --jtoc-h2\">\n<div class=\"wpj-jtoc--item-content --jtoc-h2\" data-depth=\"2\">\n<div class=\"jtoc--bullet\">\n<div class=\"--bullet-inner\"><\/div>\n<\/div>\n<p>                        <a href=\"#what-are-the-most-common-nodejs-performance-bottlenecks\" title=\"What Are the Most Common Node.js Performance Bottlenecks?\" data-numeration=\"2\">\u0631\u0627\u06cc\u062c \u062a\u0631\u06cc\u0646 \u06af\u0644\u0648\u06af\u0627\u0647 \u0647\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f Node.js \u0686\u06cc\u0633\u062a\u061f<\/a>\n                    <\/div>\n<\/li>\n<li class=\"wpj-jtoc--item --jtoc-h2\">\n<div class=\"wpj-jtoc--item-content --jtoc-h2\" data-depth=\"2\">\n<div class=\"jtoc--bullet\">\n<div class=\"--bullet-inner\"><\/div>\n<\/div>\n<p>                        <a href=\"#how-do-you-set-the-right-nodejs-cluster-and-worker-count\" title=\"How Do You Set the Right Node.js Cluster and Worker Count?\" data-numeration=\"3\">\u0686\u06af\u0648\u0646\u0647 \u062a\u0639\u062f\u0627\u062f \u062e\u0648\u0634\u0647 \u0648 \u06a9\u0627\u0631\u06af\u0631 Node.js \u062f\u0631\u0633\u062a \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u061f<\/a>\n                    <\/div>\n<\/li>\n<li class=\"wpj-jtoc--item --jtoc-h2\">\n<div class=\"wpj-jtoc--item-content --jtoc-h2\" data-depth=\"2\">\n<div class=\"jtoc--bullet\">\n<div class=\"--bullet-inner\"><\/div>\n<\/div>\n<p>                        <a href=\"#what-pm2-and-process-manager-settings-improve-stability\" title=\"What PM2 and Process Manager Settings Improve Stability?\" data-numeration=\"4\">\u06a9\u062f\u0627\u0645 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a PM2 \u0648 Process Manager \u062b\u0628\u0627\u062a \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0645\u06cc \u0628\u062e\u0634\u062f\u061f<\/a>\n                    <\/div>\n<\/li>\n<li class=\"wpj-jtoc--item --jtoc-h2\">\n<div class=\"wpj-jtoc--item-content --jtoc-h2\" data-depth=\"2\">\n<div class=\"jtoc--bullet\">\n<div class=\"--bullet-inner\"><\/div>\n<\/div>\n<p>                        <a href=\"#how-should-you-configure-nginx-as-a-reverse-proxy-for-nodejs\" title=\"How Should You Configure Nginx as a Reverse Proxy for Node.js?\" data-numeration=\"5\">\u0686\u06af\u0648\u0646\u0647 \u0628\u0627\u06cc\u062f Nginx \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633 \u0628\u0631\u0627\u06cc Node.js \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f\u061f<\/a>\n                    <\/div>\n<\/li>\n<li class=\"wpj-jtoc--item --jtoc-h2\">\n<div class=\"wpj-jtoc--item-content --jtoc-h2\" data-depth=\"2\">\n<div class=\"jtoc--bullet\">\n<div class=\"--bullet-inner\"><\/div>\n<\/div>\n<p>                        <a href=\"#what-memory-and-garbage-collection-flags-should-you-tune\" title=\"What Memory and Garbage Collection Flags Should You Tune?\" data-numeration=\"6\">\u0686\u0647 \u067e\u0631\u0686\u0645 \u0647\u0627\u06cc \u062d\u0627\u0641\u0638\u0647 \u0648 \u062c\u0645\u0639 \u0622\u0648\u0631\u06cc \u0632\u0628\u0627\u0644\u0647 \u0631\u0627 \u0628\u0627\u06cc\u062f \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f\u061f<\/a>\n                    <\/div>\n<\/li>\n<li class=\"wpj-jtoc--item --jtoc-h2\">\n<div class=\"wpj-jtoc--item-content --jtoc-h2\" data-depth=\"2\">\n<div class=\"jtoc--bullet\">\n<div class=\"--bullet-inner\"><\/div>\n<\/div>\n<p>                        <a href=\"#how-do-you-profile-a-slow-nodejs-application\" title=\"How Do You Profile a Slow Node.js Application?\" data-numeration=\"7\">\u0686\u06af\u0648\u0646\u0647 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 Slow Node.js \u0631\u0627 \u0646\u0645\u0627\u06cc\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u061f<\/a>\n                    <\/div>\n<\/li>\n<li class=\"wpj-jtoc--item --jtoc-h2\">\n<div class=\"wpj-jtoc--item-content --jtoc-h2\" data-depth=\"2\">\n<div class=\"jtoc--bullet\">\n<div class=\"--bullet-inner\"><\/div>\n<\/div>\n<p>                        <a href=\"#which-caching-layers-make-the-biggest-difference\" title=\"Which Caching Layers Make the Biggest Difference?\" data-numeration=\"8\">\u06a9\u062f\u0627\u0645 \u0644\u0627\u06cc\u0647 \u0647\u0627\u06cc \u06a9\u0634 \u0628\u06cc\u0634\u062a\u0631\u06cc\u0646 \u062a\u0641\u0627\u0648\u062a \u0631\u0627 \u062f\u0627\u0631\u0646\u062f\u061f<\/a>\n                    <\/div>\n<\/li>\n<li class=\"wpj-jtoc--item --jtoc-h2\">\n<div class=\"wpj-jtoc--item-content --jtoc-h2\" data-depth=\"2\">\n<div class=\"jtoc--bullet\">\n<div class=\"--bullet-inner\"><\/div>\n<\/div>\n<p>                        <a href=\"#how-do-you-secure-a-production-nodejs-vps\" title=\"How Do You Secure a Production Node.js VPS?\" data-numeration=\"9\">\u0686\u06af\u0648\u0646\u0647 VPS \u062a\u0648\u0644\u06cc\u062f Node.js \u0631\u0627 \u0627\u06cc\u0645\u0646 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u061f<\/a>\n                    <\/div>\n<\/li>\n<li class=\"wpj-jtoc--item --jtoc-h2\">\n<div class=\"wpj-jtoc--item-content --jtoc-h2\" data-depth=\"2\">\n<div class=\"jtoc--bullet\">\n<div class=\"--bullet-inner\"><\/div>\n<\/div>\n<p>                        <a href=\"#when-should-you-scale-beyond-a-single-vps\" title=\"When Should You Scale Beyond a Single VPS?\" data-numeration=\"10\">\u0686\u0647 \u0632\u0645\u0627\u0646\u06cc \u0628\u0627\u06cc\u062f \u0641\u0631\u0627\u062a\u0631 \u0627\u0632 \u06cc\u06a9 VPS \u0648\u0627\u062d\u062f \u0645\u0642\u06cc\u0627\u0633 \u06a9\u0646\u06cc\u062f\u061f<\/a>\n                    <\/div>\n<\/li>\n<\/ol>\n<\/nav><\/div><\/div><\/div>\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"why-nodejs-performance-tuning-matters-on-a-production-vps\"><span class=\"ez-toc-section\" id=\"%da%86%d8%b1%d8%a7_%d8%aa%d9%86%d8%b8%db%8c%d9%85_%d8%b9%d9%85%d9%84%da%a9%d8%b1%d8%af_nodejs_%d8%a7%d9%87%d9%85%db%8c%d8%aa_%d8%af%d8%a7%d8%b1%d8%af%d8%9f_%d8%b1%d9%88%db%8c_%db%8c%da%a9_vps_%d8%aa%d9%88%d9%84%db%8c%d8%af\"><\/span>\u0686\u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0639\u0645\u0644\u06a9\u0631\u062f Node.js \u0627\u0647\u0645\u06cc\u062a \u062f\u0627\u0631\u062f\u061f \u0631\u0648\u06cc \u06cc\u06a9 VPS \u062a\u0648\u0644\u06cc\u062f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"wp-block-paragraph\">\u06cc\u06a9 VPS \u0628\u0647 \u0634\u0645\u0627 \u0645\u06cc \u062f\u0647\u062f root \u062f\u0633\u062a\u0631\u0633\u06cc\u060c \u062a\u062e\u0635\u06cc\u0635 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc vCPU\u060c \u0648 \u067e\u0627\u06cc\u062f\u0627\u0631 process \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u0645\u0634\u062a\u0631\u06a9 \u0646\u0645\u06cc \u062a\u0648\u0627\u0646\u062f\u060c \u06a9\u0647 \u062f\u0642\u06cc\u0642\u0627 \u0647\u0645\u0627\u0646 \u0686\u06cc\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 Node.js \u0637\u0648\u0644\u0627\u0646\u06cc \u0645\u062f\u062a \u0627\u0633\u062a process \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f. \u067e\u06cc\u0634 \u0641\u0631\u0636 node \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc server.js \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u062a\u06a9 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f process \u0631\u0648\u06cc  \u06cc\u06a9 \u0631\u0634\u062a\u0647 \u0648\u0627\u062d\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u06cc\u06a9 VPS 4-vCPU \u06a9\u0647 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062a\u0646\u0638\u06cc\u0645 \u0646\u0634\u062f\u0647 \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f\u060c \u062a\u0642\u0631\u06cc\u0628\u0627\u064b 25 \u062f\u0631\u0635\u062f \u0627\u0632 \u0633\u062e\u062a \u0627\u0641\u0632\u0627\u0631\u06cc \u0631\u0627 \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0622\u0646 \u067e\u0631\u062f\u0627\u062e\u062a \u0645\u06cc \u06a9\u0646\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f. \u062a\u0646\u0638\u06cc\u0645 \u0627\u06cc\u0646 \u0634\u06a9\u0627\u0641 \u0631\u0627 \u0627\u0632 \u0628\u06cc\u0646 \u0645\u06cc \u0628\u0631\u062f.<\/p>\n<p class=\"wp-block-paragraph\">\u062f\u0644\u06cc\u0644 \u062f\u06cc\u06af\u0631 \u062a\u0646\u0638\u06cc\u0645 \u062f\u0631 \u0644\u0627\u06cc\u0647 VPS \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 Node.js \u0628\u0631\u0627\u06cc \u06a9\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0627 \u0637\u0631\u0627\u062d\u06cc \u062a\u06a9 \u0631\u0634\u062a\u0647 \u0627\u06cc \u0627\u0633\u062a. \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f <a href=\"https:\/\/nodejs.org\/en\/learn\/asynchronous-work\/event-loop-timers-and-nexttick\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">\u06cc\u06a9 \u062d\u0644\u0642\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f \u0648 \u06cc\u06a9 thread pool libuv \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a I\/O<\/a>\u060c \u0627\u0645\u0627 \u0647\u0631 \u06a9\u0627\u0631\u06cc \u06a9\u0647 \u0628\u0647 CPU \u0645\u06cc \u0646\u0648\u06cc\u0633\u06cc\u062f \u0647\u0645\u0686\u0646\u0627\u0646 \u0647\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u0631\u0627 \u0645\u0633\u062f\u0648\u062f \u0645\u06cc \u06a9\u0646\u062f \u0631\u0648\u06cc \u0622\u0646 \u06a9\u0627\u0631\u06af\u0631 \u062a\u0646\u0638\u06cc\u0645 \u062a\u0648\u0644\u06cc\u062f \u0628\u06cc\u0634\u062a\u0631 \u062f\u0631 \u0645\u0648\u0631\u062f \u062e\u0627\u0631\u062c \u06a9\u0631\u062f\u0646 \u06a9\u0627\u0631 \u0645\u062a\u0635\u0644 \u0628\u0647 CPU \u0627\u0632 \u062d\u0644\u0642\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f \u0627\u0633\u062a. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0634\u0627\u0645\u0644 \u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u0627\u0631\u0632\u0627\u0646\u200c\u062a\u0631 \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 Node \u0645\u06cc\u200c\u0634\u0648\u062f \u062a\u0627 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u0641\u0642\u0637 \u0628\u0647 \u0622\u0646\u0686\u0647 \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0631\u0633\u06cc\u062f\u06af\u06cc \u06a9\u0646\u062f.<\/p>\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"what-are-the-most-common-nodejs-performance-bottlenecks\"><span class=\"ez-toc-section\" id=\"%d8%b1%d8%a7%db%8c%d8%ac_%d8%aa%d8%b1%db%8c%d9%86_%da%af%d9%84%d9%88%da%af%d8%a7%d9%87_%d9%87%d8%a7%db%8c_%d8%b9%d9%85%d9%84%da%a9%d8%b1%d8%af_nodejs_%da%86%db%8c%d8%b3%d8%aa%d8%9f\"><\/span>\u0631\u0627\u06cc\u062c \u062a\u0631\u06cc\u0646 \u06af\u0644\u0648\u06af\u0627\u0647 \u0647\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f Node.js \u0686\u06cc\u0633\u062a\u061f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"wp-block-paragraph\">\u0645\u0633\u0627\u0626\u0644 \u062a\u0648\u0644\u06cc\u062f \u0648\u0627\u0642\u0639\u06cc \u062f\u0631 \u0627\u0637\u0631\u0627\u0641 \u062a\u0639\u062f\u0627\u062f \u0627\u0646\u06af\u0634\u062a \u0634\u0645\u0627\u0631\u06cc \u0627\u0632 \u0622\u0646\u0647\u0627 \u062c\u0645\u0639 \u0645\u06cc \u0634\u0648\u0646\u062f root \u0639\u0644\u0644:<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>\u0645\u062c\u0631\u062f-process \u0627\u0633\u062a\u0642\u0631\u0627\u0631\u0647\u0627 <\/strong>\u06cc\u06a9 \u06af\u0631\u0647 process \u0646\u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0627\u0632 \u0628\u06cc\u0634 \u0627\u0632 \u06cc\u06a9 \u0647\u0633\u062a\u0647 CPU \u0628\u0631\u0627\u06cc \u06a9\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u06cc\u06a9 VPS \u0686\u0646\u062f \u0647\u0633\u062a\u0647 \u0627\u06cc \u062f\u0631 \u062d\u0627\u0644\u062a \u0628\u06cc\u06a9\u0627\u0631 \u0642\u0631\u0627\u0631 \u0645\u06cc \u06af\u06cc\u0631\u062f.<\/li>\n<li><strong>\u062d\u0644\u0642\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f \u0645\u0633\u062f\u0648\u062f \u0634\u062f\u0647 \u0627\u0633\u062a. <\/strong>\u0641\u0627\u06cc\u0644 \u0647\u0645\u0632\u0645\u0627\u0646 \u062e\u0648\u0627\u0646\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f\u060c JSON.parse \u0631\u0648\u06cc \u0645\u062d\u0645\u0648\u0644\u0647 \u0647\u0627\u06cc \u0628\u0632\u0631\u06af\u060c \u0647\u0634 bcrypt \u0631\u0648\u06cc \u0631\u0634\u062a\u0647 \u0627\u0635\u0644\u06cc \u06cc\u0627 regex \u0646\u0627\u0645\u062d\u062f\u0648\u062f \u0647\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0645\u0632\u0645\u0627\u0646 \u0631\u0627 \u0645\u062a\u0648\u0642\u0641 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li><strong>\u0646\u0634\u062a \u062d\u0627\u0641\u0638\u0647 \u0627\u0632 \u0645\u0646\u0627\u0628\u0639 \u062d\u0641\u0638 \u0634\u062f\u0647 <\/strong>\u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0637\u0648\u0644\u0627\u0646\u06cc \u0645\u062f\u062a\u060c \u0627\u0641\u0632\u0627\u06cc\u0634 \u062d\u0627\u0641\u0638\u0647 \u0646\u0647\u0627\u0646 \u0628\u062f\u0648\u0646 \u062a\u062e\u0644\u06cc\u0647\u060c \u0648 \u0634\u0646\u0648\u0646\u062f\u06af\u0627\u0646 \u0631\u0648\u06cc\u062f\u0627\u062f \u0645\u062a\u0635\u0644 \u0634\u062f\u0647 \u0628\u062f\u0648\u0646 \u067e\u0627\u06a9\u0633\u0627\u0632\u06cc\u060c \u0628\u0647 \u0622\u0631\u0627\u0645\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0634\u062a\u0647 \u0631\u0627 \u0627\u0632 \u0633\u0642\u0641 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 1.5 \u06af\u06cc\u06af\u0627\u0628\u0627\u06cc\u062a \u0639\u0628\u0648\u0631 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f.<\/li>\n<li><strong>\u062d\u0627\u0641\u0638\u0647 \u0646\u0647\u0627\u0646 \u062f\u0631 \u0633\u0637\u062d HTTP \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f. <\/strong>\u0647\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u0628\u0647 \u06a9\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0631\u062e\u0648\u0631\u062f \u0645\u06cc \u06a9\u0646\u062f\u060c \u062d\u062a\u06cc \u0628\u0631\u0627\u06cc \u067e\u0627\u0633\u062e \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0647\u0631 \u0633\u0627\u0639\u062a \u06cc\u06a9 \u0628\u0627\u0631 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc \u06a9\u0646\u0646\u062f.<\/li>\n<li><strong>\u0642\u0631\u0627\u0631 \u06af\u0631\u0641\u062a\u0646 \u062f\u0631 \u0645\u0639\u0631\u0636 \u0645\u0633\u062a\u0642\u06cc\u0645 \u062f\u0631 \u0627\u06cc\u0646\u062a\u0631\u0646\u062a. <\/strong>\u062f\u0631 \u062d\u0627\u0644 \u062f\u0648\u06cc\u062f\u0646 node \u0631\u0648\u06cc  \u067e\u0648\u0631\u062a 80 \u06cc\u0627 443 \u0628\u062f\u0648\u0646 Nginx \u062f\u0631 \u062c\u0644\u0648\u060c \u062e\u0627\u062a\u0645\u0647 TLS\u060c \u0633\u0631\u0648\u06cc\u0633 \u062f\u0647\u06cc \u0641\u0627\u06cc\u0644 \u0627\u0633\u062a\u0627\u062a\u06cc\u06a9 \u0648 \u0628\u0627\u0641\u0631 \u0622\u0647\u0633\u062a\u0647 \u06a9\u0644\u0627\u06cc\u0646\u062a \u0631\u0627 \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0645\u06cc\u200c\u06af\u0630\u0627\u0631\u062f.<\/li>\n<li><strong>\u0633\u0641\u0631\u0647\u0627\u06cc \u0631\u0641\u062a \u0648 \u0628\u0631\u06af\u0634\u062a \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0631\u0648\u06cc \u0645\u0633\u06cc\u0631 \u062f\u0627\u063a <\/strong>\u0646\u0645\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u06af\u0645\u0634\u062f\u0647 \u0648 \u067e\u0631\u0633\u200c\u0648\u062c\u0648\u0647\u0627\u06cc N+1 \u0628\u0647\u200c\u0639\u0646\u0648\u0627\u0646 \u0645\u0634\u06a9\u0644\u0627\u062a \u0639\u0645\u0644\u06a9\u0631\u062f \u06af\u0631\u0647 \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0647 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f\u060c \u062d\u062a\u06cc \u0627\u06af\u0631 \u0632\u0645\u0627\u0646 \u0648\u0627\u0642\u0639\u06cc \u062f\u0631 \u0627\u0646\u062a\u0638\u0627\u0631 \u0635\u0631\u0641 \u0634\u0648\u062f. \u0631\u0648\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">\u062f\u0627\u0646\u0633\u062a\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u06a9\u062f\u0627\u0645 \u06cc\u06a9 \u0631\u0627 \u062f\u0627\u0631\u06cc\u062f \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0627\u0646\u062f\u0627\u0632\u0647 \u06af\u06cc\u0631\u06cc \u062f\u0627\u0631\u062f\u060c \u0646\u0647 \u062d\u062f\u0633 \u0632\u062f\u0646. \u0642\u0628\u0644 \u0627\u0632 \u062a\u063a\u06cc\u06cc\u0631 \u0647\u0631 \u0686\u06cc\u0632\u06cc\u060c \u0628\u0627 \u0628\u0631\u0631\u0633\u06cc \u062a\u0627\u062e\u06cc\u0631 \u062d\u0644\u0642\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f \u0648 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0634\u062a\u0647 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f.<\/p>\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"how-do-you-set-the-right-nodejs-cluster-and-worker-count\"><span class=\"ez-toc-section\" id=\"%da%86%da%af%d9%88%d9%86%d9%87_%d8%aa%d8%b9%d8%af%d8%a7%d8%af_%d8%ae%d9%88%d8%b4%d9%87_%d9%88_%da%a9%d8%a7%d8%b1%da%af%d8%b1_nodejs_%d8%af%d8%b1%d8%b3%d8%aa_%d8%b1%d8%a7_%d8%aa%d9%86%d8%b8%db%8c%d9%85_%d9%85%db%8c_%da%a9%d9%86%db%8c%d8%af%d8%9f\"><\/span>\u0686\u06af\u0648\u0646\u0647 \u062a\u0639\u062f\u0627\u062f \u062e\u0648\u0634\u0647 \u0648 \u06a9\u0627\u0631\u06af\u0631 Node.js \u062f\u0631\u0633\u062a \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u061f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"wp-block-paragraph\">\u0627\u0644\u06af\u0648\u06cc \u062e\u0648\u0634\u0647 \u0627\u06cc \u06cc\u06a9 Node \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f process \u062f\u0631 \u0647\u0631 \u0647\u0633\u062a\u0647 CPU\u060c \u0628\u0627 \u06cc\u06a9 Master process \u062a\u0648\u0632\u06cc\u0639 \u0627\u062a\u0635\u0627\u0644\u0627\u062a \u0628\u06cc\u0646 \u06a9\u0627\u0631\u06af\u0631\u0627\u0646 \u0631\u0627 <a href=\"https:\/\/nodejs.org\/api\/cluster.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">\u0645\u0627\u0698\u0648\u0644 \u06a9\u0644\u0627\u0633\u062a\u0631 Node.js \u062f\u0631 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u062a\u0639\u0628\u06cc\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a<\/a> \u0648 \u067e\u0627\u06cc\u0647 \u0648 \u0627\u0633\u0627\u0633 \u0627\u0633\u062a \u06a9\u0647 PM2 \u0648 \u0628\u06cc\u0634\u062a\u0631 process \u0645\u062f\u06cc\u0631\u0627\u0646 \u0632\u06cc\u0631 \u06a9\u0627\u067e\u0648\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0646\u062f.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1478\" height=\"1000\" src=\"https:\/\/www.rasanegar.com\/blog\/wp-content\/uploads\/2026\/05\/node-js-vps-architecture-diagram.png\" alt=\"\u0646\u0645\u0648\u062f\u0627\u0631 \u0645\u0639\u0645\u0627\u0631\u06cc VPS Node.js\" class=\"wp-image-83003\" title=\"\"><\/figure>\n<p class=\"wp-block-paragraph\">\u0642\u0627\u0646\u0648\u0646 \u06a9\u0644\u06cc:<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>\u0628\u0627\u0631\u0647\u0627\u06cc \u06a9\u0627\u0631\u06cc \u0645\u062d\u062f\u0648\u062f \u06cc\u0627 \u0645\u062a\u0639\u0627\u062f\u0644: <\/strong>\u06a9\u0627\u0631\u06af\u0631\u0627\u0646 = \u062a\u0639\u062f\u0627\u062f vCPU. \u062f\u0631 VPS 4-vCPU\u060c 4 \u06a9\u0627\u0631\u06af\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f.<\/li>\n<li><strong>\u0628\u0627\u0631\u0647\u0627\u06cc \u06a9\u0627\u0631\u06cc \u0633\u0646\u06af\u06cc\u0646 I\/O: <\/strong>\u06a9\u0627\u0631\u06af\u0631\u0627\u0646 = vCPU \u0647\u0627 \u0647\u0646\u0648\u0632 \u0646\u0642\u0637\u0647 \u0634\u0631\u0648\u0639 \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a. \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0645\u0648\u0627\u0631\u062f \u0628\u0647 \u0646\u062f\u0631\u062a \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0632\u06cc\u0631\u0627 \u06af\u0644\u0648\u06af\u0627\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u06cc\u0627 API \u062e\u0627\u0631\u062c\u06cc \u0627\u0633\u062a \u0646\u0647 Node.<\/li>\n<li><strong>\u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc VPS \u0628\u0627 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u062d\u0627\u0641\u0638\u0647: <\/strong>\u06a9\u0627\u0631\u06af\u0631\u0627\u0646 = \u06a9\u0641 (\u0631\u0645 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \/ \u067e\u0634\u062a\u0647 \u0628\u0631\u0627\u06cc \u0647\u0631 \u06a9\u0627\u0631\u06af\u0631). \u0627\u06af\u0631 \u0647\u0631 \u06a9\u0627\u0631\u06af\u0631 400 \u0645\u06af\u0627\u0628\u0627\u06cc\u062a \u067e\u0634\u062a\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f \u0648 \u0628\u0639\u062f \u0627\u0632 \u0633\u06cc\u0633\u062a\u0645 \u0639\u0627\u0645\u0644 2 \u06af\u06cc\u06af\u0627\u0628\u0627\u06cc\u062a \u0631\u0627\u06cc\u06af\u0627\u0646 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f\u060c \u0628\u062f\u0648\u0646 \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0646 \u062a\u0639\u062f\u0627\u062f \u0647\u0633\u062a\u0647\u060c \u0633\u0642\u0641 \u0686\u0647\u0627\u0631 \u06a9\u0627\u0631\u06af\u0631 \u0627\u0633\u062a.<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">\u0628\u0627 PM2 \u0634\u0645\u0627 \u0627\u06cc\u0646 \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0622\u0634\u06a9\u0627\u0631 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><\/p>\n<pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>pm2 start app.js -i max --name api<\/textarea><\/pre>\n<p><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><\/p>\n<pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">pm2<\/span><span style=\"color: #E1E4E8\"> start app.js -i<\/span><span style=\"color: #79B8FF\"> max<\/span><span style=\"color: #E1E4E8\"> --name api<\/span><\/span><\/code><\/pre>\n<\/div>\n<p class=\"wp-block-paragraph\">\u0631\u0627 <code>-i max<\/code> \u067e\u0631\u0686\u0645 \u062f\u0631 \u0647\u0631 \u0647\u0633\u062a\u0647 \u0645\u0648\u062c\u0648\u062f \u06cc\u06a9 \u06a9\u0627\u0631\u06af\u0631 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f. \u0627\u0632 \u06cc\u06a9 \u0639\u062f\u062f \u062e\u0627\u0635 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f\u060c \u0645\u0627\u0646\u0646\u062f <code>-i 4<\/code>\u060c \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0641\u0636\u0627\u06cc \u0627\u0635\u0644\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u06cc\u0627 \u062d\u0627\u0641\u0638\u0647 \u067e\u0646\u0647\u0627\u0646 \u0628\u06af\u0630\u0627\u0631\u06cc\u062f process \u0631\u0648\u06cc  \u0647\u0645\u0627\u0646 \u0648\u06cc \u067e\u06cc \u0627\u0633<\/p>\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"what-pm2-and-process-manager-settings-improve-stability\"><span class=\"ez-toc-section\" id=\"%da%a9%d8%af%d8%a7%d9%85_%d8%aa%d9%86%d8%b8%db%8c%d9%85%d8%a7%d8%aa_pm2_%d9%88_process_manager_%d8%ab%d8%a8%d8%a7%d8%aa_%d8%b1%d8%a7_%d8%a8%d9%87%d8%a8%d9%88%d8%af_%d9%85%db%8c_%d8%a8%d8%ae%d8%b4%d8%af%d8%9f\"><\/span>\u06a9\u062f\u0627\u0645 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a PM2 \u0648 Process Manager \u062b\u0628\u0627\u062a \u0631\u0627 \u0628\u0647\u0628\u0648\u062f \u0645\u06cc \u0628\u062e\u0634\u062f\u061f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"wp-block-paragraph\">PM2 \u0631\u0627\u06cc\u062c \u062a\u0631\u06cc\u0646 \u062a\u0648\u0644\u06cc\u062f \u0627\u0633\u062a process \u0645\u062f\u06cc\u0631 \u0628\u0631\u0627\u06cc Node\u060c \u0648 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0647\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u0634\u0645\u0627 \u062f\u0631 \u0645\u0642\u06cc\u0627\u0633 \u0646\u06cc\u0633\u062a\u0646\u062f. \u0622\u0645\u0627\u062f\u0647 \u062a\u0648\u0644\u06cc\u062f <code>ecosystem.config.js<\/code> \u0628\u0647 \u0627\u06cc\u0646 \u0646\u0632\u062f\u06cc\u06a9 \u062a\u0631 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f:<\/p>\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><\/p>\n<pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>module.exports = {\n  apps: ({\n    name: 'api',\n    script: '.\/server.js',\n    instances: 'max',\n    exec_mode: 'cluster',\n    max_memory_restart: '500M',\n    node_args: '--max-old-space-size=460',\n    env_production: {\n      NODE_ENV: 'production',\n      PORT: 3000\n    },\n    error_file: '\/var\/log\/pm2\/api-err.log',\n    out_file: '\/var\/log\/pm2\/api-out.log',\n    merge_logs: true,\n    time: true\n  })\n};<\/textarea><\/pre>\n<p><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><\/p>\n<pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">module.<\/span><span style=\"color: #F97583\">exports<\/span><span style=\"color: #E1E4E8\"> = {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">  apps: ({<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    name: <\/span><span style=\"color: #F97583\">'api'<\/span><span style=\"color: #E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    script: <\/span><span style=\"color: #9ECBFF\">'.\/server.js'<\/span><span style=\"color: #E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    instances: <\/span><span style=\"color: #9ECBFF\">'max'<\/span><span style=\"color: #E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    exec_mode: <\/span><span style=\"color: #9ECBFF\">'cluster'<\/span><span style=\"color: #E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    max_memory_restart: <\/span><span style=\"color: #9ECBFF\">'500M'<\/span><span style=\"color: #E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    node_args: <\/span><span style=\"color: #9ECBFF\">'--max-old-space-size=460'<\/span><span style=\"color: #E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    env_production: {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">      NODE_ENV: <\/span><span style=\"color: #9ECBFF\">'production'<\/span><span style=\"color: #E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">      PORT: 3000<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    },<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    error_file: <\/span><span style=\"color: #9ECBFF\">'\/var\/log\/pm2\/api-err.log'<\/span><span style=\"color: #E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    out_file: <\/span><span style=\"color: #9ECBFF\">'\/var\/log\/pm2\/api-out.log'<\/span><span style=\"color: #E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    merge_logs: true,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    time: true<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">  })<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">};<\/span><\/span><\/code><\/pre>\n<\/div>\n<p class=\"wp-block-paragraph\">\u0686\u0646\u062f \u062c\u0632\u0626\u06cc\u0627\u062a \u0645\u0647\u0645 \u062f\u0631 \u062a\u0648\u0644\u06cc\u062f:<\/p>\n<ul class=\"wp-block-list\">\n<li><code>max_memory_restart<\/code>  \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u06a9\u0627\u0631\u06af\u0631\u06cc \u0628\u0647 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u067e\u0634\u062a\u0647 V8 \u0628\u0631\u0633\u062f \u0648 \u062a\u0648\u0633\u0637 \u0642\u0627\u062a\u0644 OS OOM \u06a9\u0634\u062a\u0647 \u0634\u0648\u062f\u060c \u06cc\u06a9 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062c\u062f\u062f \u062f\u0644\u067e\u0630\u06cc\u0631 \u0631\u0627 \u0622\u063a\u0627\u0632 \u0645\u06cc \u06a9\u0646\u062f. \u0622\u0646 \u0631\u0627 5 \u062a\u0627 10 \u062f\u0631\u0635\u062f \u062f\u0631 \u0632\u06cc\u0631 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f <code>--max-old-space-size<\/code>.<\/li>\n<li><code>exec_mode: cluster<\/code>  \u0686\u06cc\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0648\u0627\u0642\u0639 \u062a\u0639\u0627\u062f\u0644 \u0628\u0627\u0631 \u0631\u0627 \u062f\u0631 \u0628\u06cc\u0646 \u06a9\u0627\u0631\u06af\u0631\u0627\u0646 \u0627\u0645\u06a9\u0627\u0646 \u067e\u0630\u06cc\u0631 \u0645\u06cc \u06a9\u0646\u062f. \u062d\u0627\u0644\u062a \u0641\u0648\u0631\u06a9 \u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc \u0645\u0633\u062a\u0642\u0644 \u0631\u0627 \u0628\u062f\u0648\u0646 \u0627\u062a\u0635\u0627\u0644 \u067e\u0648\u0631\u062a \u0645\u0634\u062a\u0631\u06a9 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li><strong>\u0686\u0631\u062e\u0634 \u06af\u0632\u0627\u0631\u0634 <\/strong>\u0646\u06cc\u0633\u062a \u0631\u0648\u06cc \u0628\u0647 \u0637\u0648\u0631 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f <code>pm2-logrotate<\/code> \u0648 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f <code>pm2 set<\/code> <code>pm2-logrotate:max_size 50M<\/code>  \u0648 <code>pm2 set pm2-logrotate:retain 14<\/code> \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u06af\u0632\u0627\u0631\u0634\u200c\u0647\u0627 \u062f\u06cc\u0633\u06a9 \u0631\u0627 \u062f\u0631 \u0647\u0646\u06af\u0627\u0645 \u0627\u0641\u0632\u0627\u06cc\u0634 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u067e\u0631 \u0646\u0645\u06cc\u200c\u06a9\u0646\u0646\u062f.<\/li>\n<li><strong>\u062a\u062f\u0627\u0648\u0645 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc <\/strong>\u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f <code>pm2 startup systemd<\/code> \u0648 <code>pm2 save<\/code> \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u06a9\u0627\u0631\u06af\u0631\u0627\u0646 \u067e\u0633 \u0627\u0632 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062c\u062f\u062f \u06cc\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0647\u0633\u062a\u0647 \u0628\u0647\u200c\u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0628\u0631\u0645\u06cc\u200c\u06af\u0631\u062f\u0646\u062f.<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u062c\u062f\u062f \u0628\u062f\u0648\u0646 \u062a\u0648\u0642\u0641 \u0631\u0648\u06cc \u0645\u0633\u062a\u0642\u0631 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f <code>pm2 reload api<\/code> \u0628\u0647 \u062c\u0627\u06cc <code>restart<\/code>. \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u062c\u062f\u062f\u060c \u06a9\u0627\u0631\u06af\u0631\u0627\u0646 \u0631\u0627 \u06cc\u06a9 \u0628\u0647 \u06cc\u06a9 \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u062e\u0648\u0634\u0647 \u0631\u0627 \u0622\u0646\u0644\u0627\u06cc\u0646 \u0646\u06af\u0647 \u0645\u06cc \u062f\u0627\u0631\u062f\u060c \u062a\u0639\u0648\u06cc\u0636 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"how-should-you-configure-nginx-as-a-reverse-proxy-for-nodejs\"><span class=\"ez-toc-section\" id=\"%da%86%da%af%d9%88%d9%86%d9%87_%d8%a8%d8%a7%db%8c%d8%af_nginx_%d8%b1%d8%a7_%d8%a8%d9%87_%d8%b9%d9%86%d9%88%d8%a7%d9%86_%db%8c%da%a9_%d9%be%d8%b1%d9%88%da%a9%d8%b3%db%8c_%d9%85%d8%b9%da%a9%d9%88%d8%b3_%d8%a8%d8%b1%d8%a7%db%8c_nodejs_%d9%be%db%8c%da%a9%d8%b1%d8%a8%d9%86%d8%af%db%8c_%da%a9%d9%86%db%8c%d8%af%d8%9f\"><\/span>\u0686\u06af\u0648\u0646\u0647 \u0628\u0627\u06cc\u062f Nginx \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633 \u0628\u0631\u0627\u06cc Node.js \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f\u061f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"wp-block-paragraph\">\u0642\u0631\u0627\u0631 \u062f\u0627\u062f\u0646 Nginx \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 Node \u062a\u0646\u0647\u0627 \u062a\u0627\u062b\u06cc\u0631\u06af\u0630\u0627\u0631\u062a\u0631\u06cc\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0628\u0631\u0627\u06cc \u0627\u06a9\u062b\u0631 \u0627\u0633\u062a\u0642\u0631\u0627\u0631\u0647\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u0627\u0633\u062a. Nginx \u062e\u0627\u062a\u0645\u0647 TLS\u060c \u062a\u062d\u0648\u06cc\u0644 \u062f\u0627\u0631\u0627\u06cc\u06cc \u0627\u0633\u062a\u0627\u062a\u06cc\u06a9\u060c \u0641\u0634\u0631\u062f\u0647\u200c\u0633\u0627\u0632\u06cc gzip \u0648 Brotli\u060c \u0628\u0627\u0641\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0631\u0627\u06cc \u06a9\u0644\u0627\u06cc\u0646\u062a\u200c\u0647\u0627\u06cc \u06a9\u0646\u062f \u0648 HTTP\/2 \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 Node \u0631\u0627 \u0622\u0632\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0641\u0642\u0637 \u06a9\u0627\u0631\u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u06a9\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u062f.<\/p>\n<p class=\"wp-block-paragraph\">\u06cc\u06a9 \u0628\u0644\u0648\u06a9 \u0633\u0631\u0648\u0631 \u062d\u062f\u0627\u0642\u0644 \u062a\u0648\u0644\u06cc\u062f:<\/p>\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><\/p>\n<pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>uupstream node_api {\n\u00a0\u00a0\u00a0\u00a0server 127.0.0.1:3000;\n\u00a0\u00a0\u00a0\u00a0keepalive 64;\n}\n\u00a0\nserver {\n\u00a0\u00a0\u00a0\u00a0listen 443 ssl http2;\n\u00a0\u00a0\u00a0\u00a0server_name api.example.com;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0ssl_certificate \u00a0 \u00a0 \/etc\/letsencrypt\/live\/api.example.com\/fullchain.pem;\n\u00a0\u00a0\u00a0\u00a0ssl_certificate_key \/etc\/letsencrypt\/live\/api.example.com\/privkey.pem;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0gzip \u0631\u0648\u06cc;\n\u00a0\u00a0\u00a0\u00a0gzip_types application\/json text\/css application\/javascript;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0location \/static\/ {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0alias \/var\/www\/api\/public\/;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0expires 30d;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0add_header Cache-Control \"public, immutable\";\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0location \/ {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_pass http:\/\/node_api;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_http_version 1.1;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_set_header Connection \"\";\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_set_header Host $host;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_set_header X-Real-IP $remote_addr;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_set_header X-Forwarded-Proto $scheme;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0proxy_read_timeout 60s;\n\u00a0\u00a0\u00a0\u00a0}\n}<\/textarea><\/pre>\n<p><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><\/p>\n<pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">uupstream<\/span><span style=\"color: #E1E4E8\"> node_api {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">server<\/span><span style=\"color: #E1E4E8\"> 127.0.0.1:3000;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">\u00a0keepalive <\/span><span style=\"color: #E1E4E8\">64;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">server<\/span><span style=\"color: #E1E4E8\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">\u00a0listen <\/span><span style=\"color: #E1E4E8\">443 ssl http2;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">\u00a0server_name <\/span><span style=\"color: #E1E4E8\">api.example.com;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">\u00a0ssl_certificate <\/span><span style=\"color: #E1E4E8\">\u00a0 \u00a0 \/etc\/letsencrypt\/live\/api.example.com\/fullchain.pem;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">\u00a0ssl_certificate_key <\/span><span style=\"color: #E1E4E8\">\/etc\/letsencrypt\/live\/api.example.com\/privkey.pem;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">\u00a0gzip <\/span><span style=\"color: #E1E4E8\">\u0631\u0648\u06cc;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">\u00a0gzip_types <\/span><span style=\"color: #E1E4E8\">application\/json text\/css application\/javascript;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">location<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">\/static\/ <\/span><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">\u00a0alias <\/span><span style=\"color: #E1E4E8\">\/var\/www\/api\/public\/;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">\u00a0expires <\/span><span style=\"color: #E1E4E8\">30d;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">\u00a0add_header <\/span><span style=\"color: #E1E4E8\">Cache-Control <\/span><span style=\"color: #9ECBFF\">\"public, immutable\"<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">location<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">\/ <\/span><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">\u00a0proxy_pass <\/span><span style=\"color: #E1E4E8\">http:\/\/node_api;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">\u00a0proxy_http_version <\/span><span style=\"color: #E1E4E8\">1.1;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">\u00a0proxy_set_header <\/span><span style=\"color: #E1E4E8\">Connection <\/span><span style=\"color: #9ECBFF\">\"\"<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">\u00a0proxy_set_header <\/span><span style=\"color: #E1E4E8\">Host $host;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">\u00a0proxy_set_header <\/span><span style=\"color: #E1E4E8\">X-Real-IP $remote_addr;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">\u00a0proxy_set_header <\/span><span style=\"color: #E1E4E8\">X-Forwarded-For $proxy_add_x_forwarded_for;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">\u00a0proxy_set_header <\/span><span style=\"color: #E1E4E8\">X-Forwarded-Proto $scheme;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<\/span><span style=\"color: #F97583\">\u00a0proxy_read_timeout <\/span><span style=\"color: #E1E4E8\">60s;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\u00a0\u00a0\u00a0\u00a0}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre>\n<\/div>\n<p class=\"wp-block-paragraph\">\u062f\u0648 \u062c\u0632\u0626\u06cc\u0627\u062a \u0631\u0627 \u06a9\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u063a\u0644\u0628 \u0627\u0632 \u062f\u0633\u062a \u0645\u06cc \u062f\u0647\u0646\u062f: \u062a\u0646\u0638\u06cc\u0645 <code>proxy_http_version 1.1<\/code> \u0628\u0647 \u0639\u0644\u0627\u0648\u0647 \u062e\u0627\u0644\u06cc <code>Connection <\/code>\u0647\u062f\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0627\u0632 \u0627\u062a\u0635\u0627\u0644 \u0631\u0627 \u0641\u0639\u0627\u0644 \u0645\u06cc \u06a9\u0646\u062f <a href=\"https:\/\/nginx.org\/en\/docs\/http\/ngx_http_upstream_module.html#keepalive\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">\u0627\u0633\u062a\u062e\u0631 \u0646\u06af\u0647\u062f\u0627\u0631\u0646\u062f\u0647 \u0628\u0627\u0644\u0627\u062f\u0633\u062a<\/a>\u060c \u06a9\u0647 \u0628\u0647 \u0637\u0648\u0631 \u0686\u0634\u0645\u06af\u06cc\u0631\u06cc \u0633\u0631\u0628\u0627\u0631 \u062f\u0633\u062a \u062f\u0627\u062f\u0646 TCP \u0631\u0627 \u062a\u062d\u062a \u0628\u0627\u0631 \u06a9\u0627\u0647\u0634 \u0645\u06cc \u062f\u0647\u062f. \u062f\u0631 \u062d\u0627\u0644 \u062e\u062f\u0645\u062a \u06a9\u0631\u062f\u0646 <code>\/static\/<\/code> \u0628\u0647 \u0637\u0648\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0627\u0632 Nginx \u0628\u0627 \u0637\u0648\u0644\u0627\u0646\u06cc <code>Cache-Control<\/code> \u0647\u062f\u0631\u0647\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0647\u0632\u0627\u0631\u0627\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0631\u0627 \u062f\u0631 \u062f\u0642\u06cc\u0642\u0647 \u0627\u0632 \u06a9\u0627\u0631\u06af\u0631\u0627\u0646 Node \u0634\u0645\u0627 \u0628\u0631\u0627\u06cc \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0647\u0631\u06af\u0632 \u0646\u0628\u0627\u06cc\u062f \u0644\u0645\u0633 \u0645\u06cc\u200c\u06a9\u0631\u062f\u0646\u062f\u060c \u0645\u06cc\u200c\u06a9\u0634\u062f.<\/p>\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"what-memory-and-garbage-collection-flags-should-you-tune\"><span class=\"ez-toc-section\" id=\"%da%86%d9%87_%d9%be%d8%b1%da%86%d9%85_%d9%87%d8%a7%db%8c_%d8%ad%d8%a7%d9%81%d8%b8%d9%87_%d9%88_%d8%ac%d9%85%d8%b9_%d8%a2%d9%88%d8%b1%db%8c_%d8%b2%d8%a8%d8%a7%d9%84%d9%87_%d8%b1%d8%a7_%d8%a8%d8%a7%db%8c%d8%af_%d8%aa%d9%86%d8%b8%db%8c%d9%85_%da%a9%d9%86%db%8c%d8%af%d8%9f\"><\/span>\u0686\u0647 \u067e\u0631\u0686\u0645 \u0647\u0627\u06cc \u062d\u0627\u0641\u0638\u0647 \u0648 \u062c\u0645\u0639 \u0622\u0648\u0631\u06cc \u0632\u0628\u0627\u0644\u0647 \u0631\u0627 \u0628\u0627\u06cc\u062f \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f\u061f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"wp-block-paragraph\">Node \u0627\u0632 V8 \u062f\u0631 \u0632\u06cc\u0631 \u0647\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0627\u0646\u062f\u0627\u0632\u0647 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0646\u0633\u0644 \u0642\u062f\u06cc\u0645\u06cc Heap V8 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b 1.5 \u06af\u06cc\u06af\u0627\u0628\u0627\u06cc\u062a \u0627\u0633\u062a. \u0631\u0648\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0647\u0627\u06cc 64 \u0628\u06cc\u062a\u06cc \u0635\u0631\u0641 \u0646\u0638\u0631 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 VPS \u0648\u0627\u0642\u0639\u0627 \u0686\u0642\u062f\u0631 \u0631\u0645 \u062f\u0627\u0631\u062f. \u062f\u0631 \u06cc\u06a9 VPS 4 \u06af\u06cc\u06af\u0627\u0628\u0627\u06cc\u062a\u06cc \u06a9\u0647 \u062f\u0627\u0631\u0627\u06cc \u0686\u0647\u0627\u0631 \u06a9\u0627\u0631\u06af\u0631 \u0627\u0633\u062a\u060c \u0627\u06cc\u0646 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u062d\u062f\u0648\u062f 10 \u06af\u06cc\u06af\u0627\u0628\u0627\u06cc\u062a \u0638\u0631\u0641\u06cc\u062a \u062a\u0626\u0648\u0631\u06cc \u067e\u0634\u062a\u0647 \u0628\u0627\u0642\u06cc \u0645\u06cc\u200c\u06af\u0630\u0627\u0631\u062f \u06a9\u0647 \u0646\u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0632\u06cc\u0631\u0627 \u0647\u0631 \u06a9\u0627\u0631\u06af\u0631 \u062e\u0648\u062f\u0634 \u0631\u0627 \u0645\u062d\u062f\u0648\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p class=\"wp-block-paragraph\">\u067e\u0631\u0686\u0645 \u0628\u0631\u0627\u06cc \u062a\u0646\u0638\u06cc\u0645 \u0627\u0633\u062a <code>--max-old-space-size<\/code>\u060c \u0628\u06cc\u0627\u0646 \u0634\u062f\u0647 \u062f\u0631 \u0645\u06af\u0627\u0628\u0627\u06cc\u062a:<\/p>\n<p class=\"wp-block-paragraph\">\u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0627\u0646\u062f\u0627\u0632\u0647 \u06af\u06cc\u0631\u06cc:<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>\u062a\u0642\u0631\u06cc\u0628\u0627\u064b 25\u066a \u0627\u0632 \u06a9\u0644 RAM \u0631\u0627 \u0628\u0631\u0627\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0639\u0627\u0645\u0644\u060c Nginx \u0648 \u0647\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u06cc\u0627 \u062d\u0627\u0641\u0638\u0647 \u067e\u0646\u0647\u0627\u0646 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0631\u0632\u0631\u0648 \u06a9\u0646\u06cc\u062f. \u0631\u0648\u06cc \u0647\u0645\u0627\u0646 \u0648\u06cc \u067e\u06cc \u0627\u0633<\/strong><\/li>\n<li><strong>\u0628\u0642\u06cc\u0647 \u0631\u0627 \u0628\u0631 \u062a\u0639\u062f\u0627\u062f \u06a9\u0627\u0631\u06af\u0631\u0627\u0646 \u062e\u0648\u062f \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646\u06cc\u062f\u060c \u0633\u067e\u0633 10\u066a \u0631\u0627 \u0628\u0631\u0627\u06cc \u0633\u0631\u0628\u0627\u0631 V8 \u06a9\u0645 \u06a9\u0646\u06cc\u062f. <\/strong>\u062f\u0631 \u06cc\u06a9 VPS 2 \u06af\u06cc\u06af\u0627\u0628\u0627\u06cc\u062a\u06cc \u0628\u0627 4 \u06a9\u0627\u0631\u06af\u0631\u060c \u0627\u06cc\u0646 \u0631\u06cc\u0627\u0636\u06cc \u0628\u0631\u0627\u06cc \u0647\u0631 \u06a9\u0627\u0631\u06af\u0631 \u062d\u062f\u0648\u062f 460 \u0645\u06af\u0627\u0628\u0627\u06cc\u062a \u0627\u0633\u062a.<\/li>\n<li><strong>\u0645\u0637\u0627\u0628\u0642\u062a \u062f\u0627\u062f\u0646 <\/strong><code>max_memory_restart<\/code><strong>  \u062f\u0631 PM2 \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0642\u062f\u0627\u0631 \u06cc\u0627 \u06a9\u0645\u06cc \u06a9\u0645\u062a\u0631 \u0627\u0633\u062a. <\/strong>\u06a9\u0627\u0631\u06af\u0631 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062c\u062f\u062f \u062a\u0648\u0633\u0637 PM2 \u0642\u0627\u0628\u0644 \u0628\u0627\u0632\u06cc\u0627\u0628\u06cc \u0627\u0633\u062a. \u06cc\u06a9\u06cc \u06a9\u0634\u062a\u0647 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 kernel OOM \u0642\u0627\u062a\u0644 \u0646\u06cc\u0633\u062a.<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0627\u06cc \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0628\u0627 \u062a\u0648\u0627\u0646 \u0628\u0633\u06cc\u0627\u0631 \u0628\u0627\u0644\u0627\u060c \u067e\u0631\u0686\u0645\u200c\u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc \u0627\u0631\u0632\u0634 \u0622\u0632\u0645\u0627\u06cc\u0634 \u0631\u0627 \u0634\u0627\u0645\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f <code>--max-semi-space-size<\/code> \u0628\u0631\u0627\u06cc \u062f\u0627\u062f\u0646 \u0641\u0636\u0627\u06cc \u0628\u06cc\u0634\u062a\u0631 \u0628\u0647 \u0646\u0633\u0644 \u062c\u0648\u0627\u0646 (\u06a9\u0627\u0647\u0634 \u0641\u0631\u06a9\u0627\u0646\u0633 GC \u062c\u0632\u0626\u06cc \u0631\u0648\u06cc \u062e\u062f\u0645\u0627\u062a\u06cc \u06a9\u0647 \u0628\u0647 \u0635\u0648\u0631\u062a \u062a\u0647\u0627\u062c\u0645\u06cc \u062a\u062e\u0635\u06cc\u0635 \u0645\u06cc \u062f\u0647\u0646\u062f) \u0648 <code>--no-compilation-cache<\/code> \u0627\u06af\u0631 \u0641\u0634\u0627\u0631 \u062d\u0627\u0641\u0638\u0647 \u0631\u0627 \u0627\u0632 \u06a9\u062f \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u0634\u062f\u0647 \u06a9\u0634 \u062f\u0631 \u06a9\u0627\u0631\u06af\u0631\u0627\u0646 \u06a9\u0648\u062a\u0627\u0647 \u0645\u062f\u062a \u0645\u0634\u0627\u0647\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f. \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0628\u0647 \u062a\u0648\u0644\u06cc\u062f \u0645\u062a\u0639\u0647\u062f \u06a9\u0646\u06cc\u062f\u060c \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0627 \u062a\u062d\u062a \u0628\u0627\u0631 \u0622\u0632\u0645\u0627\u06cc\u0634 \u06a9\u0646\u06cc\u062f.<\/p>\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"how-do-you-profile-a-slow-nodejs-application\"><span class=\"ez-toc-section\" id=\"%da%86%da%af%d9%88%d9%86%d9%87_%db%8c%da%a9_%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87_slow_nodejs_%d8%b1%d8%a7_%d9%86%d9%85%d8%a7%db%8c%d9%87_%d9%85%db%8c_%da%a9%d9%86%db%8c%d8%af%d8%9f\"><\/span>\u0686\u06af\u0648\u0646\u0647 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 Slow Node.js \u0631\u0627 \u0646\u0645\u0627\u06cc\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u061f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"wp-block-paragraph\">\u0627\u06a9\u062b\u0631 \u06a9\u0627\u0631\u0647\u0627 \u0628\u0627 \u0634\u06a9\u0633\u062a \u0645\u0648\u0627\u062c\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f \u0632\u06cc\u0631\u0627 \u0645\u0647\u0646\u062f\u0633 \u0686\u06cc\u0632 \u0627\u0634\u062a\u0628\u0627\u0647\u06cc \u0631\u0627 \u0628\u0647\u06cc\u0646\u0647 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a. \u0627\u0628\u062a\u062f\u0627 \u0646\u0645\u0627\u06cc\u0647\u060c \u0633\u067e\u0633 \u06a9\u062f \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f:<\/p>\n<ul class=\"wp-block-list\">\n<li><code>node --inspect server.js<\/code>  \u0628\u0627 Chrome DevTools \u06cc\u06a9 \u0646\u0645\u0648\u062f\u0627\u0631 \u0634\u0639\u0644\u0647 \u0627\u0632 \u0632\u0645\u0627\u0646 CPU \u0648 \u06cc\u06a9 \u0627\u0628\u0632\u0627\u0631 \u0639\u06a9\u0633 \u0641\u0648\u0631\u06cc \u067e\u0634\u062a\u0647 \u0627\u06cc \u0628\u0631\u0627\u06cc \u06cc\u0627\u0641\u062a\u0646 \u0627\u0634\u06cc\u0627\u0621 \u062d\u0641\u0638 \u0634\u062f\u0647 \u062f\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631 \u0634\u0645\u0627 \u0642\u0631\u0627\u0631 \u0645\u06cc \u062f\u0647\u062f. \u0628\u0631\u06af\u0647 DevTools Performance \u0633\u0631\u06cc\u0639\u062a\u0631\u06cc\u0646 \u0645\u0633\u06cc\u0631 \u0628\u0631\u0627\u06cc \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u062d\u0644\u0642\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f \u0645\u0633\u062f\u0648\u062f \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n<li><code>clinic doctor<\/code>  (<a href=\"https:\/\/clinicjs.org\/doctor\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">clinicjs.org<\/a>) \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0631\u0627 \u062a\u062d\u062a \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u062a\u0634\u062e\u06cc\u0635 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0628\u0647 \u0648\u06cc\u0698\u0647 \u062f\u0631 \u0639\u0644\u0627\u0645\u062a \u06af\u0630\u0627\u0631\u06cc \u062a\u0627\u062e\u06cc\u0631 \u062d\u0644\u0642\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f \u0648 \u0641\u0634\u0627\u0631 \u0628\u06cc\u0634 \u0627\u0632 \u062d\u062f GC \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0639\u0645\u06cc\u0642 \u062a\u0631 \u0634\u0648\u06cc\u062f \u062e\u0648\u0628 \u0627\u0633\u062a.<\/li>\n<li><code>autocannon<\/code>  \u062a\u0648\u0644\u06cc\u062f \u06a9\u0646\u0646\u062f\u0647 \u0628\u0627\u0631\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0627\u06a9\u062b\u0631 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 Node \u0628\u0647 \u0622\u0646 \u062f\u0633\u062a\u0631\u0633\u06cc \u062f\u0627\u0631\u0646\u062f. \u06cc\u06a9 \u0645\u0639\u06cc\u0627\u0631 \u067e\u0627\u06cc\u0647 \u0642\u0628\u0644 \u0627\u0632 \u0647\u0631 \u062a\u0646\u0638\u06cc\u0645\u060c \u0646\u0642\u0637\u0647 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0627\u06cc \u0631\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0628\u062f\u0627\u0646\u06cc\u062f \u0622\u06cc\u0627 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a \u06cc\u0627 \u0622\u0633\u06cc\u0628 \u0645\u06cc \u0631\u0633\u0627\u0646\u062f.<\/li>\n<li><strong>\u0646\u0638\u0627\u0631\u062a \u0628\u0631 \u062a\u0627\u062e\u06cc\u0631 \u062d\u0644\u0642\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f \u062f\u0631 \u062a\u0648\u0644\u06cc\u062f <\/strong>\u0645\u062a\u0639\u0644\u0642 \u0628\u0647 APM \u0634\u0645\u0627 \u06cc\u0627 \u06cc\u06a9 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a <code>perf_hooks.monitorEventLoopDelay()<\/code> \u0635\u0627\u062f\u0631 \u06a9\u0646\u0646\u062f\u0647 \u0628\u0647 \u067e\u0631\u0648\u0645\u062a\u0626\u0648\u0633 \u062a\u0623\u062e\u06cc\u0631 \u0628\u06cc\u0634 \u0627\u0632 50 \u0645\u06cc\u0644\u06cc\u200c\u062b\u0627\u0646\u06cc\u0647 \u062a\u062d\u062a \u0628\u0627\u0631 \u062b\u0627\u0628\u062a\u060c \u0633\u06cc\u06af\u0646\u0627\u0644\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u0686\u06cc\u0632\u06cc \u0647\u0645\u0632\u0645\u0627\u0646 \u06a9\u0627\u0631\u06af\u0631\u0627\u0646 \u0631\u0627 \u0645\u0633\u062f\u0648\u062f \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">\u0627\u06af\u0631 \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc \u0645\u0646\u0641\u0631\u062f \u06a9\u0646\u062f \u0627\u0633\u062a\u060c \u0632\u0645\u0627\u0646 \u06a9\u0648\u0626\u0631\u06cc \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0631\u0627 \u062c\u062f\u0627 \u0627\u0632 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u0632\u0645\u0627\u0646 \u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f. \u0646\u0645\u0627\u06cc\u0647 \u06af\u0631 Node \u0628\u0647 \u0622\u0646 \u0627\u0634\u0627\u0631\u0647 \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f <code>await pool.query(...)<\/code> \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u062e\u0637 \u0622\u0647\u0633\u062a\u0647\u060c \u0627\u0645\u0627 \u06a9\u0627\u0631 \u062f\u0631 PostgreSQL \u06cc\u0627 MySQL \u0627\u062a\u0641\u0627\u0642 \u0645\u06cc \u0627\u0641\u062a\u062f\u060c \u0646\u0647 \u062f\u0631 \u06a9\u062f \u0634\u0645\u0627.<\/p>\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"which-caching-layers-make-the-biggest-difference\"><span class=\"ez-toc-section\" id=\"%da%a9%d8%af%d8%a7%d9%85_%d9%84%d8%a7%db%8c%d9%87_%d9%87%d8%a7%db%8c_%da%a9%d8%b4_%d8%a8%db%8c%d8%b4%d8%aa%d8%b1%db%8c%d9%86_%d8%aa%d9%81%d8%a7%d9%88%d8%aa_%d8%b1%d8%a7_%d8%af%d8%a7%d8%b1%d9%86%d8%af%d8%9f\"><\/span>\u06a9\u062f\u0627\u0645 \u0644\u0627\u06cc\u0647 \u0647\u0627\u06cc \u06a9\u0634 \u0628\u06cc\u0634\u062a\u0631\u06cc\u0646 \u062a\u0641\u0627\u0648\u062a \u0631\u0627 \u062f\u0627\u0631\u0646\u062f\u061f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"wp-block-paragraph\">\u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc \u0628\u0627 \u0628\u0627\u0644\u0627\u062a\u0631\u06cc\u0646 \u0646\u0631\u062e \u0628\u0627\u0632\u06af\u0634\u062a \u0633\u0631\u0645\u0627\u06cc\u0647 \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0627\u06a9\u062b\u0631 \u062a\u06cc\u0645 \u0647\u0627 \u0627\u0632 \u0622\u0646 \u0635\u0631\u0641 \u0646\u0638\u0631 \u0645\u06cc \u06a9\u0646\u0646\u062f. \u0633\u0647 \u0644\u0627\u06cc\u0647 \u0628\u0631\u0627\u06cc \u0628\u0627\u0631\u0647\u0627\u06cc \u06a9\u0627\u0631\u06cc \u062a\u0648\u0644\u06cc\u062f Node.js \u0645\u0647\u0645 \u0627\u0633\u062a:<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>\u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc \u062f\u0631 \u0633\u0637\u062d \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0627 Redis. <\/strong>\u0641\u0636\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647\u200c\u0633\u0627\u0632\u06cc \u062c\u0644\u0633\u0647\u060c \u0634\u0645\u0627\u0631\u0646\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u062d\u062f\u0648\u062f \u0646\u0631\u062e\u060c \u0648 \u0646\u062a\u0627\u06cc\u062c \u067e\u0631\u0633 \u0648 \u062c\u0648\u06cc \u0645\u06a9\u0631\u0631 \u0631\u0627 \u0627\u0632 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0628\u0647 Redis \u0645\u0646\u062a\u0642\u0644 \u06a9\u0646\u06cc\u062f \u0631\u0648\u06cc \u0647\u0645\u0627\u0646 VPS \u06cc\u0627 \u0647\u0645\u0633\u0627\u06cc\u0647 \u0634\u0628\u06a9\u0647 \u062e\u0635\u0648\u0635\u06cc. \u06cc\u06a9 \u0633\u0641\u0631 \u0631\u0641\u062a \u0648 \u0628\u0631\u06af\u0634\u062a \u0628\u0647 \u0645\u062d\u0644\u06cc Redis \u0632\u06cc\u0631 \u0645\u06cc\u0644\u06cc \u062b\u0627\u0646\u06cc\u0647 \u0627\u0633\u062a. \u0647\u0645\u0627\u0646 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u062f\u0631 \u0628\u0631\u0627\u0628\u0631 PostgreSQL \u0631\u0648\u06cc \u062d\u0627\u0641\u0638\u0647 \u067e\u0646\u0647\u0627\u0646 \u0633\u0631\u062f \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a 20 \u062a\u0627 80 \u0645\u06cc\u0644\u06cc \u062b\u0627\u0646\u06cc\u0647 \u0628\u0627\u0634\u062f.<\/li>\n<li><strong>\u0630\u062e\u06cc\u0631\u0647 \u067e\u0627\u0633\u062e HTTP \u062f\u0631 Nginx. <\/strong>\u0628\u0631\u0627\u06cc \u0646\u0642\u0627\u0637 \u067e\u0627\u06cc\u0627\u0646\u06cc \u06a9\u0647 \u067e\u0627\u0633\u062e\u200c\u0647\u0627\u06cc \u06cc\u06a9\u0633\u0627\u0646\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc URL \u06cc\u06a9\u0633\u0627\u0646 \u0628\u0631\u0645\u06cc\u200c\u06af\u0631\u062f\u0627\u0646\u0646\u062f\u060c <code>proxy_cache<\/code> \u062f\u0631 Nginx \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0647\u0632\u0627\u0631\u0627\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0631\u0627 \u062f\u0631 \u0647\u0631 \u062b\u0627\u0646\u06cc\u0647 \u0627\u0632 \u062f\u06cc\u0633\u06a9 \u0628\u062f\u0648\u0646 \u0644\u0645\u0633 Node \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u062f. \u062d\u062a\u06cc \u06cc\u06a9 \u067e\u0646\u062c\u0631\u0647 \u06a9\u0634 10 \u062b\u0627\u0646\u06cc\u0647 \u0627\u06cc \u0631\u0648\u06cc \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc \u0645\u062d\u0628\u0648\u0628 \u0628\u0627\u0631 \u0628\u0627\u0644\u0627\u062f\u0633\u062a \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0686\u0634\u0645\u06af\u06cc\u0631\u06cc \u06a9\u0627\u0647\u0634 \u0645\u06cc \u062f\u0647\u062f.<\/li>\n<li><strong>CDN \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 VPS \u0634\u0645\u0627. <\/strong>Cloudflare\u060c Bunny\u060c \u06cc\u0627 \u0647\u0631 CDN \u067e\u0631\u0648\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633\u060c \u062a\u0631\u0627\u0641\u06cc\u06a9 \u062f\u0627\u0631\u0627\u06cc\u06cc \u062b\u0627\u0628\u062a \u0631\u0627 \u062c\u0630\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c TLS \u0631\u0627 \u062f\u0631 \u0644\u0628\u0647 \u062e\u0627\u062a\u0645\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u0648 \u0627\u0632 \u0645\u0628\u062f\u0623 \u0627\u0632 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0631\u0628\u0627\u062a \u0645\u062d\u0627\u0641\u0638\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646\u06cc \u06a9\u0647 \u062f\u0631 \u0633\u0637\u062d \u062c\u0647\u0627\u0646\u06cc \u062a\u0648\u0632\u06cc\u0639 \u0634\u062f\u0647 \u0627\u0646\u062f\u060c \u0628\u0647\u0628\u0648\u062f \u062a\u0623\u062e\u06cc\u0631 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0628\u06cc\u0634\u062a\u0631 \u0627\u0632 \u0647\u0631 \u062a\u0646\u0638\u06cc\u0645 \u062f\u0631 \u0633\u0637\u062d \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0633\u062a.<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">\u062a\u0631\u062a\u06cc\u0628 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0622\u0646\u0647\u0627 \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u0630\u06a9\u0631 \u0634\u062f\u0647 \u0627\u0633\u062a. Redis \u0627\u0628\u062a\u062f\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u06a9\u0647 \u0631\u0648\u0634 \u0633\u0627\u062e\u062a\u0627\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc \u062f\u0647\u062f. \u0630\u062e\u06cc\u0631\u0647 Nginx \u062f\u0648\u0645 \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u06a9\u0647 \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u062f \u0646\u062f\u0627\u0631\u062f \u0648 \u06cc\u06a9 CDN \u0633\u0648\u0645 \u0632\u06cc\u0631\u0627 \u062d\u062a\u06cc \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062a\u0646\u0638\u06cc\u0645 \u0646\u0634\u062f\u0647 \u0646\u06cc\u0632 \u0645\u0641\u06cc\u062f \u0627\u0633\u062a.<\/p>\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"how-do-you-secure-a-production-nodejs-vps\"><span class=\"ez-toc-section\" id=\"%da%86%da%af%d9%88%d9%86%d9%87_vps_%d8%aa%d9%88%d9%84%db%8c%d8%af_nodejs_%d8%b1%d8%a7_%d8%a7%db%8c%d9%85%d9%86_%d9%85%db%8c_%da%a9%d9%86%db%8c%d8%af%d8%9f\"><\/span>\u0686\u06af\u0648\u0646\u0647 VPS \u062a\u0648\u0644\u06cc\u062f Node.js \u0631\u0627 \u0627\u06cc\u0645\u0646 \u0645\u06cc \u06a9\u0646\u06cc\u062f\u061f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"wp-block-paragraph\">\u0639\u0645\u0644\u06a9\u0631\u062f \u0648 \u0627\u0645\u0646\u06cc\u062a \u0628\u06cc\u0634 \u0627\u0632 \u0622\u0646\u0686\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u0627\u0646\u062a\u0638\u0627\u0631 \u062f\u0627\u0631\u0646\u062f \u0647\u0645\u067e\u0648\u0634\u0627\u0646\u06cc \u062f\u0627\u0631\u0646\u062f\u060c \u0632\u06cc\u0631\u0627 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062f\u0631 \u0645\u0639\u0631\u0636 \u0646\u0645\u0627\u06cc\u0634 \u06cc\u06a9 \u0627\u0633\u06a9\u0646 \u0628\u0627\u062a \u0646\u062a \u062a\u0627 \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0646\u0628\u0648\u062f\u0646 \u0641\u0627\u0635\u0644\u0647 \u062f\u0627\u0631\u062f. \u0633\u062e\u062a \u0634\u062f\u0646 \u067e\u0627\u06cc\u0647 \u0628\u0631\u0627\u06cc VPS Node.js:<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>Node \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u063a\u06cc\u0631 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062froot \u06a9\u0627\u0631\u0628\u0631. <\/strong>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>setcap 'cap_net_bind_service=+ep' $(which node)<\/code> \u0627\u06af\u0631 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0627\u062a\u0635\u0627\u0644 \u0628\u0647 \u067e\u0648\u0631\u062a \u0647\u0627\u06cc \u0632\u06cc\u0631 1024 \u0628\u062f\u0648\u0646 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f root\u060c \u06cc\u0627 \u062f\u0631 Nginx \u062e\u0627\u062a\u0645\u0647 \u062f\u0647\u06cc\u062f \u0648 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f Node \u06af\u0648\u0634 \u06a9\u0646\u062f \u0631\u0648\u06cc 3000.<\/li>\n<li><strong>a \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f host \u0641\u0627\u06cc\u0631\u0648\u0627\u0644 <\/strong>UFW \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u06cc\u0627 <code>firewalld<\/code> \u0631\u0648\u06cc  AlmaLinux \u0633\u0631\u0648\u0631 \u0631\u0627 \u0641\u0642\u0637 \u0631\u0648\u06cc \u067e\u0648\u0631\u062a \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0639\u0645\u062f\u0627\u064b \u062f\u0631 \u0645\u0639\u0631\u0636 \u0646\u0645\u0627\u06cc\u0634 \u0642\u0631\u0627\u0631 \u0645\u06cc \u062f\u0647\u06cc\u062f \u0642\u0641\u0644 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0645\u0639\u0645\u0648\u0644\u0627\u064b 22\u060c 80 \u0648 443.<\/li>\n<li><strong>\u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0647\u0627 \u0631\u0627 \u0627\u0635\u0644\u0627\u062d \u0634\u062f\u0647 \u0646\u06af\u0647 \u062f\u0627\u0631\u06cc\u062f. <\/strong><code>npm audit<\/code>  \u062f\u0631 CI \u0648 Dependabot \u06cc\u0627 Renovate \u0631\u0648\u06cc \u0645\u062e\u0632\u0646 CVE \u0647\u0627 \u0631\u0627 \u062f\u0631 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0647\u0627\u06cc \u06af\u0630\u0631\u0627 \u0642\u0628\u0644 \u0627\u0632 \u0631\u0633\u06cc\u062f\u0646 \u0628\u0647 \u062a\u0648\u0644\u06cc\u062f \u0645\u06cc \u06af\u06cc\u0631\u062f.<\/li>\n<li><strong>\u0647\u062f\u0631\u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc HTTP \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f. <\/strong><a href=\"https:\/\/helmetjs.github.io\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">\u06a9\u0644\u0627\u0647 \u0627\u06cc\u0645\u0646\u06cc<\/a> \u0645\u06cc\u0627\u0646 \u0627\u0641\u0632\u0627\u0631 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f Express \u0628\u0631\u0627\u06cc \u0647\u062f\u0631\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f <code>Strict-Transport-Security<\/code>\u060c <code>Content-Security-Policy<\/code>\u060c \u0648 <code>X-Frame-Options<\/code>. \u0647\u062f\u0631\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0646\u0627\u062f\u0631\u0633\u062a \u06cc\u06a9\u06cc \u0627\u0632 \u0631\u0627\u06cc\u062c \u062a\u0631\u06cc\u0646 \u06cc\u0627\u0641\u062a\u0647 \u0647\u0627 \u062f\u0631 \u0645\u0645\u06cc\u0632\u06cc \u0647\u0627\u06cc \u0627\u0645\u0646\u06cc\u062a\u06cc \u0627\u0633\u062a.<\/li>\n<li><strong>\u0631\u0627\u0632\u0647\u0627 \u0631\u0627 \u0628\u0686\u0631\u062e\u0627\u0646\u06cc\u062f \u0648 \u0627\u0632 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0645\u062d\u06cc\u0637\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. <\/strong>\u0647\u0631\u06af\u0632 \u0641\u0627\u06cc\u0644 \u0647\u0627\u06cc .env \u0631\u0627 commit \u0646\u06a9\u0646\u06cc\u062f. \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f Doppler\u060c Vault \u06cc\u0627 \u062d\u062a\u06cc systemd <code>EnvironmentFile=<\/code> \u062f\u0633\u062a\u0648\u0631\u0627\u0644\u0639\u0645\u0644 \u0647\u0627 \u0627\u0639\u062a\u0628\u0627\u0631\u0646\u0627\u0645\u0647 \u0647\u0627 \u0631\u0627 \u062e\u0627\u0631\u062c \u0627\u0632 \u0645\u062e\u0632\u0646 \u0646\u06af\u0647 \u0645\u06cc \u062f\u0627\u0631\u0646\u062f.<\/li>\n<\/ul>\n<h2 class=\"wp-block-heading joli-heading jtoc-heading\" id=\"when-should-you-scale-beyond-a-single-vps\"><span class=\"ez-toc-section\" id=\"%da%86%d9%87_%d8%b2%d9%85%d8%a7%d9%86%db%8c_%d8%a8%d8%a7%db%8c%d8%af_%d9%81%d8%b1%d8%a7%d8%aa%d8%b1_%d8%a7%d8%b2_%db%8c%da%a9_vps_%d9%88%d8%a7%d8%ad%d8%af_%d9%85%d9%82%db%8c%d8%a7%d8%b3_%da%a9%d9%86%db%8c%d8%af%d8%9f\"><\/span>\u0686\u0647 \u0632\u0645\u0627\u0646\u06cc \u0628\u0627\u06cc\u062f \u0641\u0631\u0627\u062a\u0631 \u0627\u0632 \u06cc\u06a9 VPS \u0648\u0627\u062d\u062f \u0645\u0642\u06cc\u0627\u0633 \u06a9\u0646\u06cc\u062f\u061f<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p class=\"wp-block-paragraph\">\u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 Node.js \u06a9\u0647 \u0628\u0647 \u062e\u0648\u0628\u06cc \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a \u0631\u0648\u06cc \u06cc\u06a9 VPS 4 \u062a\u0627 8 vCPU \u0628\u0627 Nginx \u0648 Redis \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0645\u06cc\u0644\u06cc\u0648\u0646 \u0647\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0631\u0627 \u062f\u0631 \u0631\u0648\u0632 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u062f. \u0645\u0642\u06cc\u0627\u0633 \u0628\u0646\u062f\u06cc \u0627\u0641\u0642\u06cc \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0628\u0647 \u06cc\u06a9\u06cc \u0627\u0632 \u0633\u0647 \u062f\u0644\u06cc\u0644 \u0636\u0631\u0648\u0631\u06cc \u0645\u06cc \u0634\u0648\u062f:<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u0632 CPU \u0628\u0627\u0644\u0627\u06cc 70\u066a \u062f\u0631 \u0647\u0645\u0647 \u06a9\u0627\u0631\u06af\u0631\u0627\u0646\u060c <\/strong>\u062d\u062a\u06cc \u067e\u0633 \u0627\u0632 \u0646\u0645\u0627\u06cc\u0647 \u0633\u0627\u0632\u06cc \u0648 \u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a\u060c \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0634\u0645\u0627 \u0627\u0632 \u062c\u0639\u0628\u0647 \u0628\u0632\u0631\u06af\u062a\u0631 \u0634\u062f\u0647 \u0627\u06cc\u062f.<\/li>\n<li><strong>SLA \u0647\u0627\u06cc \u0622\u067e\u062a\u0627\u06cc\u0645 \u0641\u0634\u0631\u062f\u0647 <\/strong>\u06a9\u0647 \u0646\u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u06cc\u06a9 \u0646\u0641\u0631 \u0631\u0627 \u062a\u062d\u0645\u0644 \u06a9\u0646\u062fhost \u062e\u0631\u0627\u0628\u06cc \u0628\u0647 \u062d\u062f\u0627\u0642\u0644 \u062f\u0648 \u0646\u0645\u0648\u0646\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 VPS \u062f\u0631 \u067e\u0634\u062a \u06cc\u06a9 \u0645\u062a\u0639\u0627\u062f\u0644 \u06a9\u0646\u0646\u062f\u0647 \u0628\u0627\u0631 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f.<\/li>\n<li><strong>\u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0645\u0646\u0627\u0628\u0639 \u062f\u0648\u0644\u062a\u06cc <\/strong>\u0632\u0645\u0627\u0646\u06cc \u0627\u0631\u0632\u0634 \u0647\u0632\u06cc\u0646\u0647 \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u0631\u0627 \u062f\u0627\u0631\u062f \u06a9\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647\u060c \u062d\u0627\u0641\u0638\u0647 \u067e\u0646\u0647\u0627\u0646 \u0648 \u0628\u0627\u0631\u0647\u0627\u06cc \u06a9\u0627\u0631\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u0628\u0631\u0627\u06cc \u0647\u0645\u0627\u0646 \u0648\u0631\u0648\u062f\u06cc\/\u062e\u0631\u0648\u062c\u06cc \u06cc\u0627 RAM \u062f\u06cc\u0633\u06a9 \u0634\u0631\u0648\u0639 \u0628\u0647 \u0631\u0642\u0627\u0628\u062a \u06a9\u0646\u0646\u062f. \u0631\u0648\u06cc \u06cc\u06a9 VPS \u0645\u0634\u062a\u0631\u06a9<\/li>\n<\/ul>\n<p class=\"wp-block-paragraph\">\u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc VPS \u0627\u0628\u0631\u06cc \u0631\u0633\u0627\u0646\u06af\u0627\u0631 \u0648 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc VPS \u0645\u062f\u06cc\u0631\u06cc\u062a\u200c\u0634\u062f\u0647 \u0647\u0631 \u062f\u0648 \u0628\u0647 \u0635\u0648\u0631\u062a \u06a9\u0627\u0645\u0644 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f root \u062f\u0633\u062a\u0631\u0633\u06cc\u060c \u062a\u062e\u0635\u06cc\u0635 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc vCPU \u0648 \u062a\u0648\u0632\u06cc\u0639\u200c\u0647\u0627\u06cc \u0644\u06cc\u0646\u0648\u06a9\u0633 \u0627\u0632 \u062c\u0645\u0644\u0647 AlmaLinux 9\u060c Ubuntu 22.04 LTS\u060c \u0648 Debian 12\u060c \u06a9\u0647 \u0627\u0644\u0632\u0627\u0645\u0627\u062a \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0647\u0631 \u0646\u0633\u062e\u0647 \u0641\u0639\u0644\u06cc Node.js LTS \u067e\u0648\u0634\u0634 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f. 99.99% \u0622\u067e\u062a\u0627\u06cc\u0645 SLA \u0648 \u062f\u0633\u062a\u0631\u0633\u06cc 24\/7 \u0628\u0647 \u062a\u06cc\u0645 APS \u062f\u0631 \u0646\u0642\u0637\u0647 \u0627\u06cc \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0645\u0627 \u062f\u06cc\u06af\u0631 \u067e\u0631\u0648\u0698\u0647 \u062c\u0627\u0646\u0628\u06cc \u0646\u06cc\u0633\u062a \u0648 \u0634\u0631\u0648\u0639 \u0628\u0647 \u06a9\u0633\u0628 \u062f\u0631\u0622\u0645\u062f \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a\u060c \u0628\u06cc\u0634\u062a\u0631\u06cc\u0646 \u0627\u0647\u0645\u06cc\u062a \u0631\u0627 \u062f\u0627\u0631\u062f.<\/p>\n<p class=\"wp-block-paragraph\">\u0627\u06af\u0631 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u062a\u0648\u0644\u06cc\u062f\u06cc Node.js \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u06cc\u062f \u0631\u0648\u06cc \u0647\u0627\u0633\u062a \u0627\u0634\u062a\u0631\u0627\u06a9\u06cc \u06cc\u0627 \u0631\u0648\u06cc \u06cc\u06a9 VPS \u06a9\u0647 \u0627\u0632 \u067e\u06cc\u0634\u200c\u0641\u0631\u0636\u200c\u0647\u0627\u06cc \u067e\u06cc\u0634\u200c\u0641\u0631\u0636 \u062a\u0646\u0638\u06cc\u0645 \u0646\u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0627\u062d\u062a\u0645\u0627\u0644\u0627\u064b \u062a\u0623\u062e\u06cc\u0631 p95 \u0631\u0627 \u0628\u0647 \u0646\u0635\u0641 \u06a9\u0627\u0647\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f. \u0622\u0646\u0647\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u06cc\u06a9 \u062f\u0644\u0627\u0631 \u062f\u06cc\u06af\u0631 \u062e\u0631\u062c \u06a9\u0646\u06cc\u062f\u060c \u0638\u0631\u0641\u06cc\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0631\u0627 \u062f\u0648 \u0628\u0631\u0627\u0628\u0631 \u06a9\u0646\u0646\u062f \u0631\u0648\u06cc \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0628\u0627 \u062d\u0627\u0644\u062a \u062e\u0648\u0634\u0647 PM2 \u0648 Nginx \u062f\u0631 \u062c\u0644\u0648 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f\u060c \u0622\u0646\u0686\u0647 \u0631\u0627 \u06a9\u0647 \u0628\u0627\u0642\u06cc \u0645\u0627\u0646\u062f\u0647 \u0627\u0633\u062a \u0646\u0645\u0627\u06cc\u0647 \u06a9\u0646\u06cc\u062f \u0648 \u062f\u0631 \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0632 \u0622\u0646 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u0646\u062f\u060c \u062d\u0627\u0641\u0638\u0647 \u067e\u0646\u0647\u0627\u0646 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p class=\"wp-block-paragraph\">\u062a\u0646\u0638\u06cc\u0645 \u0639\u0645\u0644\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f Node.js \u0628\u0631\u0627\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc VPS \u062a\u0648\u0644\u06cc\u062f\u06cc\u060c \u0627\u0632 \u062c\u0645\u0644\u0647 \u062e\u0648\u0634\u0647\u200c\u0628\u0646\u062f\u06cc\u060c PM2\u060c \u067e\u0631\u0627\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633 Nginx\u060c \u067e\u0631\u0686\u0645\u200c\u0647\u0627\u06cc \u062d\u0627\u0641\u0638\u0647 \u0648 \u0644\u0627\u06cc\u0647\u200c\u0647\u0627\u06cc \u06a9\u0634.<\/p>\n<p class=\"wp-block-paragraph\"><strong>\u0622\u0645\u0627\u062f\u0647 \u0627\u062c\u0631\u0627\u06cc Node.js \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u062a\u0648\u0644\u06cc\u062f \u0647\u0633\u062a\u06cc\u062f\u061f<\/strong> \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a VPS \u0631\u0633\u0627\u0646\u06af\u0627\u0631 \u0628\u0647 \u0634\u0645\u0627 \u0645\u06cc \u062f\u0647\u062f root \u062f\u0633\u062a\u0631\u0633\u06cc\u060c \u062a\u062e\u0635\u06cc\u0635 \u0627\u062e\u062a\u0635\u0627\u0635\u06cc vCPU\u060c \u0648 \u0627\u0646\u062a\u062e\u0627\u0628\u06cc \u0627\u0632 AlmaLinux 9\u060c Ubuntu 22.04 LTS\u060c \u06cc\u0627 Debian 12. \u0628\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc 24\/7 \u0627\u0646\u0633\u0627\u0646\u06cc \u0648 99.99% uptime SLA \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<div style=\"clear:both\"><\/div>\n<div class=\"the_champ_sharing_container the_champ_horizontal_sharing\" data-super-socializer-href=\"https:\/\/www.rasanegar.com\/blog\/nodejs-performance-optimization-production-vps-hosting\/\">\n<div class=\"the_champ_sharing_title\" style=\"font-weight:bold\">\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0631\u0627 \u0628\u0647 \u0627\u0634\u062a\u0631\u0627\u06a9 \u0628\u06af\u0630\u0627\u0631\u06cc\u062f<\/div>\n<div class=\"the_champ_sharing_ul\"><span class=\"the_champ_svg the_champ_s__default the_champ_s_linkedin\" style=\"background-color:#0077b5;width:35px;height:35px;border-radius:999px;display:inline-block;opacity:1;float:left;font-size:24px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box\"><svg style=\"display:block;border-radius:999px;\" focusable=\"false\" aria-hidden=\"true\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"100%\" height=\"100%\" viewbox=\"0 0 32 32\"><path d=\"M6.227 12.61h4.19v13.48h-4.19V12.61zm2.095-6.7a2.43 2.43 0 0 1 0 4.86c-1.344 0-2.428-1.09-2.428-2.43s1.084-2.43 2.428-2.43m4.72 6.7h4.02v1.84h.058c.56-1.058 1.927-2.176 3.965-2.176 4.238 0 5.02 2.792 5.02 6.42v7.395h-4.183v-6.56c0-1.564-.03-3.574-2.178-3.574-2.18 0-2.514 1.7-2.514 3.46v6.668h-4.187V12.61z\" fill=\"#fff\"><\/path><\/svg><\/span><span class=\"the_champ_svg the_champ_s__default the_champ_s_reddit\" style=\"background-color:#ff5700;width:35px;height:35px;border-radius:999px;display:inline-block;opacity:1;float:left;font-size:24px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box\"><svg style=\"display:block;border-radius:999px;\" focusable=\"false\" aria-hidden=\"true\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"100%\" height=\"100%\" viewbox=\"-3.5 -3.5 39 39\"><path d=\"M28.543 15.774a2.953 2.953 0 0 0-2.951-2.949 2.882 2.882 0 0 0-1.9.713 14.075 14.075 0 0 0-6.85-2.044l1.38-4.349 3.768.884a2.452 2.452 0 1 0 .24-1.176l-4.274-1a.6.6 0 0 0-.709.4l-1.659 5.224a14.314 14.314 0 0 0-7.316 2.029 2.908 2.908 0 0 0-1.872-.681 2.942 2.942 0 0 0-1.618 5.4 5.109 5.109 0 0 0-.062.765c0 4.158 5.037 7.541 11.229 7.541s11.22-3.383 11.22-7.541a5.2 5.2 0 0 0-.053-.706 2.963 2.963 0 0 0 1.427-2.51zm-18.008 1.88a1.753 1.753 0 0 1 1.73-1.74 1.73 1.73 0 0 1 1.709 1.74 1.709 1.709 0 0 1-1.709 1.711 1.733 1.733 0 0 1-1.73-1.711zm9.565 4.968a5.573 5.573 0 0 1-4.081 1.272h-.032a5.576 5.576 0 0 1-4.087-1.272.6.6 0 0 1 .844-.854 4.5 4.5 0 0 0 3.238.927h.032a4.5 4.5 0 0 0 3.237-.927.6.6 0 1 1 .844.854zm-.331-3.256a1.726 1.726 0 1 1 1.709-1.712 1.717 1.717 0 0 1-1.712 1.712z\" fill=\"#fff\"><\/path><\/svg><\/span><a aria-label=\"X\" class=\"the_champ_button_x\" href=\"https:\/\/twitter.com\/intent\/tweet?via=rasanegar&amp;text=Node.js%20Performance%20Optimization%20for%20Production%20VPS%20\u0647\u0627\u0633\u062a\u06cc\u0646\u06af&amp;url=https%3A%2F%2Fwww.rasanegar.com%2Fblog%2Fnodejs-performance-optimization-production-vps-hosting%2F\" title=\"X\" rel=\"nofollow noopener\" target=\"_blank\" style=\"font-size:24px!important;box-shadow:none;display:inline-block;vertical-align:middle\"><span class=\"the_champ_svg the_champ_s__default the_champ_s_x\" style=\"background-color:#2a2a2a;width:35px;height:35px;border-radius:999px;display:inline-block;opacity:1;float:left;font-size:24px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box\"><svg width=\"100%\" height=\"100%\" style=\"display:block;border-radius:999px;\" focusable=\"false\" aria-hidden=\"true\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 32 32\"><path fill=\"#fff\" d=\"M21.751 7h3.067l-6.7 7.658L26 25.078h-6.172l-4.833-6.32-5.531 6.32h-3.07l7.167-8.19L6 7h6.328l4.37 5.777L21.75 7Zm-1.076 16.242h1.7L11.404 8.74H9.58l11.094 14.503Z\"><\/path><\/svg><\/span><\/a><span class=\"the_champ_svg the_champ_s__default the_champ_s_bluesky\" style=\"background-color:#0085ff;width:35px;height:35px;border-radius:999px;display:inline-block;opacity:1;float:left;font-size:24px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box\"><svg width=\"100%\" height=\"100%\" style=\"display:block;border-radius:999px;\" focusable=\"false\" aria-hidden=\"true\" viewbox=\"-3 -3 38 38\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M16 14.903c-.996-1.928-3.709-5.521-6.231-7.293C7.353 5.912 6.43 6.206 5.827 6.478 5.127 6.793 5 7.861 5 8.49s.346 5.155.572 5.91c.747 2.496 3.404 3.34 5.851 3.07.125-.02.252-.036.38-.052-.126.02-.253.037-.38.051-3.586.529-6.771 1.83-2.594 6.457 4.595 4.735 6.297-1.015 7.171-3.93.874 2.915 1.88 8.458 7.089 3.93 3.911-3.93 1.074-5.928-2.512-6.457a8.122 8.122 0 0 1-.38-.051c.128.016.255.033.38.051 2.447.271 5.104-.573 5.85-3.069.227-.755.573-5.281.573-5.91 0-.629-.127-1.697-.827-2.012-.604-.271-1.526-.566-3.942 1.132-2.522 1.772-5.235 5.365-6.231 7.293Z\" fill=\"#fff\"><\/path><\/svg><\/span><span class=\"the_champ_svg the_champ_s__default the_champ_s_perplexity\" style=\"background-color:#165962;width:35px;height:35px;border-radius:999px;display:inline-block;opacity:1;float:left;font-size:24px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box\"><svg width=\"100%\" height=\"100%\" style=\"display:block;border-radius:999px;\" focusable=\"false\" aria-hidden=\"true\" viewbox=\"-47 0 488 400\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M101.008 42L190.99 124.905V124.886V42.1913H208.506V125.276L298.891 42V136.524H336V272.866H299.005V357.035L208.506 277.525V357.948H190.99V278.836L101.11 358V272.866H64V136.524H101.008V42ZM177.785 153.826H81.5159V255.564H101.088V223.472L177.785 153.826ZM118.625 231.149V319.392L190.99 255.655V165.421L118.625 231.149ZM209.01 254.812V165.336L281.396 231.068V272.866H281.489V318.491L209.01 254.812ZM299.005 255.564H318.484V153.826H222.932L299.005 222.751V255.564ZM281.375 136.524V81.7983L221.977 136.524H281.375ZM177.921 136.524H118.524V81.7983L177.921 136.524Z\" fill=\"#fff\"><\/path><\/svg><\/span><span class=\"the_champ_svg the_champ_s__default the_champ_s_grok\" style=\"background-color:#D97757;width:35px;height:35px;border-radius:999px;display:inline-block;opacity:1;float:left;font-size:24px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box\"><svg style=\"display:block;border-radius:999px;\" focusable=\"false\" aria-hidden=\"true\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"-13 -13 64 64\" width=\"100%\" height=\"100%\"><path fill=\"#fff\" d=\"m7.75 26.27 7.77-4.36.13-.38-.13-.21h-.38l-1.3-.08-4.44-.12-3.85-.16-3.73-.2-.94-.2L0 19.4l.09-.58.79-.53 1.13.1 2.5.17 3.75.26 2.72.16 4.03.42h.64l.09-.26-.22-.16-.17-.16-3.88-2.63-4.2-2.78-2.2-1.6L3.88 11l-.6-.76-.26-1.66L4.1 7.39l1.45.1.37.1 1.47 1.13 3.14 2.43 4.1 3.02.6.5.24-.17.03-.12-.27-.45L13 9.9l-2.38-4.1-1.06-1.7-.28-1.02c-.1-.42-.17-.77-.17-1.2L10.34.21l.68-.22 1.64.22.69.6 1.02 2.33 1.65 3.67 2.56 4.99.75 1.48.4 1.37.15.42h.26v-.24l.21-2.81.39-3.45.38-4.44.13-1.25.62-1.5L23.1.57l.96.46.79 1.13-.11.73-.47 3.05-.92 4.78-.6 3.2h.35l.4-.4 1.62-2.15 2.72-3.4 1.2-1.35 1.4-1.49.9-.71h1.7l1.25 1.86-.56 1.92-1.75 2.22-1.45 1.88-2.08 2.8-1.3 2.24.12.18.31-.03 4.7-1 2.54-.46 3.03-.52 1.37.64.15.65-.54 1.33-3.24.8-3.8.76-5.66 1.34-.07.05.08.1 2.55.24 1.09.06h2.67l4.97.37 1.3.86.78 1.05-.13.8-2 1.02-2.7-.64-6.3-1.5-2.16-.54h-.3v.18l1.8 1.76 3.3 2.98 4.13 3.84.21.95-.53.75-.56-.08-3.63-2.73-1.4-1.23-3.17-2.67h-.21v.28l.73 1.07 3.86 5.8.2 1.78-.28.58-1 .35-1.1-.2L26 33.14l-2.33-3.57-1.88-3.2-.23.13-1.11 11.95-.52.61-1.2.46-1-.76-.53-1.23.53-2.43.64-3.17.52-2.52.47-3.13.28-1.04-.02-.07-.23.03-2.36 3.24-3.59 4.85-2.84 3.04-.68.27-1.18-.61.11-1.09.66-.97 3.93-5 2.37-3.1 1.53-1.79-.01-.26h-.09L6.8 30.56l-1.86.24-.8-.75.1-1.23.38-.4 3.14-2.16Z\"><\/path><\/svg><\/span><span class=\"the_champ_svg the_champ_s__default the_champ_s_chatgpt\" style=\"background-color:#000;width:35px;height:35px;border-radius:999px;display:inline-block;opacity:1;float:left;font-size:24px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box\"><svg width=\"100%\" height=\"100%\" style=\"display:block;border-radius:999px;\" focusable=\"false\" aria-hidden=\"true\" viewbox=\"0 0 721 721\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><g clip-path=\"url(#clip0_1637_2934)\"><g clip-path=\"url(#clip1_1637_2934)\"><path d=\"M304.246 294.611V249.028C304.246 245.189 305.687 242.309 309.044 240.392L400.692 187.612C413.167 180.415 428.042 177.058 443.394 177.058C500.971 177.058 537.44 221.682 537.44 269.182C537.44 272.54 537.44 276.379 536.959 280.218L441.954 224.558C436.197 221.201 430.437 221.201 424.68 224.558L304.246 294.611ZM518.245 472.145V363.224C518.245 356.505 515.364 351.707 509.608 348.349L389.174 278.296L428.519 255.743C431.877 253.826 434.757 253.826 438.115 255.743L529.762 308.523C556.154 323.879 573.905 356.505 573.905 388.171C573.905 424.636 552.315 458.225 518.245 472.141V472.145ZM275.937 376.182L236.592 353.152C233.235 351.235 231.794 348.354 231.794 344.515V238.956C231.794 187.617 271.139 148.749 324.4 148.749C344.555 148.749 363.264 155.468 379.102 167.463L284.578 222.164C278.822 225.521 275.942 230.319 275.942 237.039V376.186L275.937 376.182ZM360.626 425.122L304.246 393.455V326.283L360.626 294.616L417.002 326.283V393.455L360.626 425.122ZM396.852 570.989C376.698 570.989 357.989 564.27 342.151 552.276L436.674 497.574C442.431 494.217 445.311 489.419 445.311 482.699V343.552L485.138 366.582C488.495 368.499 489.936 371.379 489.936 375.219V480.778C489.936 532.117 450.109 570.985 396.852 570.985V570.989ZM283.134 463.99L191.486 411.211C165.094 395.854 147.343 363.229 147.343 331.562C147.343 294.616 169.415 261.509 203.48 247.593V356.991C203.48 363.71 206.361 368.508 212.117 371.866L332.074 441.437L292.729 463.99C289.372 465.907 286.491 465.907 283.134 463.99ZM277.859 542.68C223.639 542.68 183.813 501.895 183.813 451.514C183.813 447.675 184.294 443.836 184.771 439.997L279.295 494.698C285.051 498.056 290.812 498.056 296.568 494.698L417.002 425.127V470.71C417.002 474.549 415.562 477.429 412.204 479.346L320.557 532.126C308.081 539.323 293.206 542.68 277.854 542.68H277.859ZM396.852 599.776C454.911 599.776 503.37 558.513 514.41 503.812C568.149 489.896 602.696 439.515 602.696 388.176C602.696 354.587 588.303 321.962 562.392 298.45C564.791 288.373 566.231 278.296 566.231 268.224C566.231 199.611 510.571 148.267 446.274 148.267C433.322 148.267 420.846 150.184 408.37 154.505C386.775 133.392 357.026 119.958 324.4 119.958C266.342 119.958 217.883 161.22 206.843 215.921C153.104 229.837 118.557 280.218 118.557 331.557C118.557 365.146 132.95 397.771 158.861 421.283C156.462 431.36 155.022 441.437 155.022 451.51C155.022 520.123 210.682 571.466 274.978 571.466C287.931 571.466 300.407 569.549 312.883 565.228C334.473 586.341 364.222 599.776 396.852 599.776Z\" fill=\"#fff\"><\/path><\/g><\/g><defs><clippath id=\"clip0_1637_2934\"><rect width=\"720\" height=\"720\" fill=\"white\" transform=\"translate(0.606934 0.0999756)\"><\/rect><\/clippath><clippath id=\"clip1_1637_2934\"><rect width=\"484.139\" height=\"479.818\" fill=\"white\" transform=\"translate(118.557 119.958)\"><\/rect><\/clippath><\/defs><\/svg><\/span><span class=\"the_champ_svg the_champ_s__default the_champ_s_google_ai\" style=\"background-color:#000;width:35px;height:35px;border-radius:999px;display:inline-block;opacity:1;float:left;font-size:24px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box\"><svg style=\"display:block;border-radius:999px;\" focusable=\"false\" aria-hidden=\"true\" width=\"100%\" height=\"100%\" viewbox=\"-60 -60 370.16547 405.82224\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><defs id=\"defs1\"><\/defs><g id=\"g1\" transform=\"translate(0.67543506,-0.55235397)\"><path fill=\"#fff\" d=\"m 110.98,284.70628 c -6.35814,-4.06965 -9.5,-9.2896 -9.5,-15.7835 0,-11.17847 11.5462,-20.1854 22.25,-17.35673 2.3375,0.61773 5.76616,2.54758 7.61924,4.28855 8.31699,7.81381 8.20678,18.55867 -0.27316,26.63402 -3.30031,3.14284 -4.27421,3.50005 -10.36925,3.80324 -5.32483,0.26488 -7.35209,-0.0656 -9.72683,-1.58558 z m 55.08542,-27.42789 c -2.3541,-0.62236 -5.61293,-2.73327 -8.17503,-5.29536 -13.36567,-13.36568 -4.25116,-35.79636 14.54555,-35.79636 11.56223,0 20.11434,8.07333 20.8538,19.68631 0.4748,7.45652 -1.62258,12.51949 -7.22349,17.43715 -5.5219,4.84829 -11.8917,6.11209 -20.00083,3.96826 z M 61.359587,251.35777 c -1.991227,-0.53634 -5.103007,-2.5048 -6.915066,-4.37438 -2.694344,-2.77985 -3.375772,-4.3774 -3.739853,-8.76773 -0.684878,-8.25873 3.443449,-14.46682 10.976087,-16.5056 7.361803,-1.99255 14.800307,1.3966 17.861077,8.1379 2.323092,5.11657 2.391906,7.49756 0.363224,12.56774 -2.778293,6.94364 -11.08854,10.95059 -18.545469,8.94207 z M 216.98,228.08264 c -5.4826,-1.9948 -12.83332,-10.10985 -14.47774,-15.98313 -2.43636,-8.70183 -0.12282,-17.41228 6.34182,-23.87693 5.39747,-5.39746 9.75924,-6.96545 18.19172,-6.53963 6.1838,0.31227 7.98237,0.83638 11.60325,3.38123 2.3568,1.65642 5.64766,4.95037 7.31302,7.31989 2.80607,3.99255 3.02793,4.94302 3.02793,12.97207 0,7.98284 -0.23709,9.01501 -3.01626,13.13113 -4.38886,6.5002 -11.18355,10.37769 -18.83956,10.75108 -3.62789,0.17694 -7.78234,-0.29637 -10.14418,-1.15571 z m -103.8162,-6.01145 c -2.0989,-0.74857 -4.67505,-2.13828 -5.72476,-3.08826 -2.98508,-2.70146 -5.95919,-9.70489 -5.95749,-14.02865 0.006,-14.65933 18.57575,-22.89039 29.66879,-13.15058 6.37375,5.59623 8.01894,13.44191 4.44893,21.2163 -2.1848,4.75782 -4.41489,6.88992 -9.37375,8.96186 -4.46565,1.86587 -8.01244,1.89013 -13.06172,0.0893 z M 6.8951862,217.09859 c -7.3196234,-3.18697 -9.8182689,-12.44776 -5.1835049,-19.21176 2.6764772,-3.90606 5.5953538,-5.37896 10.5653717,-5.33139 7.356755,0.0704 12.185177,5.24853 12.196358,13.0797 0.0078,5.44629 -2.623363,9.41447 -7.629193,11.50604 -4.053979,1.69386 -5.979791,1.68562 -9.9490318,-0.0426 z M 163.23723,193.65114 c -7.1286,-3.63436 -11.56028,-10.90615 -11.65919,-19.13114 -0.1777,-14.77649 15.95746,-25.2459 29.45777,-19.11387 5.06887,2.30235 11.21065,9.35207 12.05124,13.83278 2.69544,14.36798 -6.64585,26.28109 -20.6075,26.28109 -3.47193,0 -6.96015,-0.70534 -9.24232,-1.86886 z M 58.793921,188.05601 c -1.752344,-0.76214 -4.396021,-3.21405 -5.874839,-5.4487 -2.291521,-3.46272 -2.623434,-4.85072 -2.246599,-9.39486 0.755494,-9.11027 6.121189,-14.19245 14.984187,-14.19245 6.117862,0 9.380235,1.68653 13.225827,6.83728 2.712466,3.63306 2.752488,11.9222 0.07935,16.43396 -3.625421,6.11904 -13.116031,8.83182 -20.167922,5.76477 z M 220.8064,166.47291 c -10.98459,-2.16484 -17.9966,-10.22422 -19.05548,-21.90178 -0.94944,-10.47055 5.65731,-20.56688 16.05743,-24.53873 9.5697,-3.6547 21.2841,0.15814 27.63088,8.99338 3.18596,4.43511 3.57573,5.69349 3.88966,12.55763 0.28147,6.15436 -0.0398,8.38303 -1.66237,11.53259 -5.17695,10.04882 -16.09555,15.47839 -26.86012,13.35691 z m -109.86902,-7.81583 c -9.48214,-5.7824 -12.11567,-16.48177 -6.35217,-25.80731 2.83953,-4.59446 11.49891,-8.81798 16.43648,-8.01672 11.29093,1.83227 18.08226,11.21701 16.03076,22.15245 -0.81523,4.34556 -5.8748,10.34506 -10.27471,12.18346 -4.6495,1.94268 -12.21626,1.69816 -15.84036,-0.51188 z M 7.903037,154.94152 C 1.8344278,152.86926 -0.52,149.48446 -0.52,142.83231 c 0,-5.08604 0.3101754,-5.86869 3.5289061,-8.90434 4.4732209,-4.21879 9.0662559,-5.16844 13.9010709,-2.87417 5.249133,2.49087 7.570023,5.90957 7.570023,11.15072 0,9.90564 -7.651586,15.78478 -16.576963,12.737 z M 164.03695,131.47311 c -8.11575,-4.04898 -12.5569,-10.80508 -12.45891,-18.95311 0.0719,-5.97696 1.69317,-10.05852 5.76601,-14.51579 4.23762,-4.6376 8.62103,-6.48421 15.39194,-6.48421 10.75595,0 19.5227,7.64134 20.50588,17.8735 0.71245,7.41464 -0.36841,11.30683 -4.47085,16.09961 -6.57912,7.68623 -16.50431,10.08586 -24.73407,5.98 z M 60.320568,126.17573 C 48.413006,120.88411 46.944059,105.22111 57.72086,98.45572 c 4.478175,-2.81128 12.985416,-2.30697 17.509706,1.03799 9.012561,6.66327 7.307271,21.37388 -3.021226,26.06247 -4.779866,2.16981 -8.020295,2.33867 -11.888772,0.61955 z M 215.98,102.65118 c -9.37007,-4.27485 -15.2586,-14.49213 -14.20965,-24.65541 0.64269,-6.22712 2.48299,-10.09527 6.90826,-14.52054 11.54338,-11.54337 31.64447,-8.23945 38.71348,6.36317 2.4568,5.07508 2.82402,14.98923 0.73945,19.96372 -5.05683,12.06729 -20.41326,18.20434 -32.15154,12.84906 z m -104,-5.79638 c -4.456,-2.35443 -6.4904,-4.399 -8.71577,-8.75932 -5.75317,-11.27261 3.27929,-25.47298 16.25388,-25.55352 7.83352,-0.0486 16.09047,6.81606 17.54883,14.58979 2.63193,14.02936 -12.84062,26.19369 -25.08694,19.72305 z M 6.8984385,92.6046 C 5.7535796,92.11206 3.6160796,90.282 2.1484385,88.53781 -4.0537004,81.16699 0.5696608,69.12243 10.091358,67.8453 c 5.184077,-0.69533 10.914313,1.85677 12.932693,5.75989 0.800772,1.54852 1.455949,4.86944 1.455949,7.37984 0,3.76518 -0.57505,5.19183 -3.284349,8.14819 -2.634802,2.87506 -4.167522,3.66127 -7.75,3.97538 -2.456108,0.21534 -5.402354,-0.0115 -6.5472125,-0.504 z M 167.83819,70.58757 C 157.34841,68.01432 150.53814,58.1203 151.81806,47.31339 c 1.95212,-16.48257 21.91609,-24.41124 34.23398,-13.59599 11.10984,9.75456 9.49571,27.59862 -3.11644,34.45207 -4.65388,2.52892 -10.69883,3.49712 -15.09741,2.4181 z M 57.72086,62.58428 c -5.332665,-3.3477 -7.412097,-7.61458 -6.981387,-14.3254 0.316383,-4.92953 0.855238,-6.26202 3.733051,-9.23117 6.691886,-6.90427 15.423137,-7.09205 22.041161,-0.47403 5.092351,5.09236 6.137277,10.95909 3.059569,17.17794 -2.907966,5.87586 -6.327733,8.11534 -13.047817,8.54451 -4.289582,0.27395 -6.283523,-0.1092 -8.804577,-1.69185 z M 114.48,35.3532 c -1.925,-0.54253 -5.01616,-2.41445 -6.86924,-4.15981 -8.31021,-7.82714 -8.20924,-19.00724 0.23862,-26.42456 4.43128,-3.890716 7.032,-4.62906 14.20889,-4.033896 4.54679,0.377055 6.09998,1.039547 9.07306,3.869996 8.42331,8.01922 8.5117,18.79795 0.21791,26.57398 -1.85308,1.7374 -5.16924,3.64739 -7.36924,4.24442 -4.60706,1.25026 -4.82063,1.24868 -9.5,-0.0701 z\" id=\"path1\"><\/path><\/g><\/svg><\/span><\/div>\n<\/div>\n<div style=\"clear:both\"><\/div><\/div>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><br \/>\n<br \/><br \/>\n<br \/>\u0645\u0646\u062a\u0634\u0631 \u0634\u062f\u0647 \u062f\u0631 2026-06-19 01:13:04<br \/>\n<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-center kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;center&quot;,&quot;id&quot;:&quot;19186&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;5&quot;,&quot;greet&quot;:&quot;\u0627\u0645\u062a\u06cc\u0627\u0632 \u0634\u0645\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0637\u0644\u0628&quot;,&quot;legend&quot;:&quot;0\\\/5 (0 \u0631\u0627\u06cc)&quot;,&quot;size&quot;:&quot;30&quot;,&quot;title&quot;:&quot;Node.js \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0631\u0627\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc VPS \u062a\u0648\u0644\u06cc\u062f&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ({count} \u0631\u0627\u06cc)&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-left: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 24px;\">\n            <span class=\"kksr-muted\">\u0627\u0645\u062a\u06cc\u0627\u0632 \u0634\u0645\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0637\u0644\u0628<\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">\u0632\u0645\u0627\u0646 \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0645\u0637\u0627\u0644\u0639\u0647: <\/span> <span class=\"rt-time\"> 9<\/span> <span class=\"rt-label rt-postfix\">\u062f\u0642\u06cc\u0642\u0647<\/span><\/span>\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u062a\u0646\u0638\u06cc\u0645\u06cc \u0631\u0627 \u067e\u0648\u0634\u0634 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u062f\u0631 \u0648\u0627\u0642\u0639 \u062a\u0627\u062e\u06cc\u0631 p95 \u0648 \u0638\u0631\u0641\u06cc\u062a \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0645\u0632\u0645\u0627\u0646 \u0631\u0627 \u062c\u0627\u0628\u062c\u0627 \u0645\u06cc \u06a9\u0646\u062f \u0631\u0648\u06cc \u06cc\u06a9 VPS \u062a\u0648\u0644\u06cc\u062f\u06cc\u060c \u0628\u0627 \u0627\u0644\u06af\u0648\u0647\u0627\u06cc \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0647 \u062f\u0631 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0648\u0627\u0642\u0639\u06cc \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u0633\u062a. \u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628 \u0686\u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0639\u0645\u0644\u06a9\u0631\u062f Node.js \u0627\u0647\u0645\u06cc\u062a \u062f\u0627\u0631\u062f\u061f \u0631\u0648\u06cc \u06cc\u06a9 VPS \u062a\u0648\u0644\u06cc\u062f \u0631\u0627\u06cc\u062c \u062a\u0631\u06cc\u0646 \u06af\u0644\u0648\u06af\u0627\u0647 \u0647\u0627\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f Node.js \u0686\u06cc\u0633\u062a\u061f \u0686\u06af\u0648\u0646\u0647 \u062a\u0639\u062f\u0627\u062f \u062e\u0648\u0634\u0647 [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":19187,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[104,207],"tags":[1085,1434,126,1905,1740],"class_list":["post-19186","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server","category-infra","tag-1085","tag---vps","tag-126","tag-1905","tag-1740"],"acf":[],"_links":{"self":[{"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/posts\/19186","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/comments?post=19186"}],"version-history":[{"count":1,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/posts\/19186\/revisions"}],"predecessor-version":[{"id":19188,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/posts\/19186\/revisions\/19188"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/media\/19187"}],"wp:attachment":[{"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/media?parent=19186"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/categories?post=19186"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rasanegaar.com\/blog\/wp-json\/wp\/v2\/tags?post=19186"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}