{"id":6793,"date":"2026-08-03T17:00:43","date_gmt":"2026-08-03T13:30:43","guid":{"rendered":"https:\/\/parmin.cloud\/blog\/?p=6793"},"modified":"2026-08-03T17:00:43","modified_gmt":"2026-08-03T13:30:43","slug":"%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d8%b1%d8%a7%d9%87%d8%a7%d9%86%d8%af%d8%a7%d8%b2%db%8c-%d9%88-%d8%b3%d8%b1%d9%88-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86%d9%87%d8%a7%db%8c-fla","status":"publish","type":"post","link":"https:\/\/parmin.cloud\/blog\/%d8%a2%d9%85%d9%88%d8%b2%d8%b4-%d8%b1%d8%a7%d9%87%d8%a7%d9%86%d8%af%d8%a7%d8%b2%db%8c-%d9%88-%d8%b3%d8%b1%d9%88-%d8%a7%d9%be%d9%84%db%8c%da%a9%db%8c%d8%b4%d9%86%d9%87%d8%a7%db%8c-fla\/","title":{"rendered":"\u0622\u0645\u0648\u0632\u0634 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0648 \u0633\u0631\u0648 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc Flask \u0628\u0627 uWSGI \u0648 Nginx \u062f\u0631 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 24.04"},"content":{"rendered":"<p class=\"svelte-4sys19\" dir=\"auto\"><strong>\u0645\u0642\u062f\u0645\u0647<\/strong> \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0634\u0645\u0627 \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u06cc\u06a9\u0631\u0648\u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 Flask \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 24.04 \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f. \u0628\u062e\u0634 \u0639\u0645\u062f\u0647 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0646\u062d\u0648\u0647 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0633\u0631\u0648\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 uWSGI\u060c \u0646\u062d\u0648\u0647 \u0627\u062c\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Nginx \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633 (Reverse Proxy) \u062f\u0631 \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>\u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627<\/strong> \u067e\u06cc\u0634 \u0627\u0632 \u0634\u0631\u0648\u0639 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0628\u0627\u06cc\u062f \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f:<\/p>\n<ul dir=\"auto\">\n<li class=\"text-start\">\u06cc\u06a9 \u0633\u0631\u0648\u0631 \u0628\u0627 \u0633\u06cc\u0633\u062a\u0645\u200c\u0639\u0627\u0645\u0644 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 24.04 \u0648 \u06cc\u06a9 \u06a9\u0627\u0631\u0628\u0631 \u063a\u06cc\u0631 \u0631\u0648\u062a (non-root) \u0628\u0627 \u062f\u0633\u062a\u0631\u0633\u06cc sudo. \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0633\u0631\u0648\u0631 \u062f\u0631 \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/li>\n<li class=\"text-start\">\u0648\u0628\u200c\u0633\u0631\u0648\u0631 Nginx \u0631\u0648\u06cc \u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u0646\u0635\u0628 \u0628\u0627\u0634\u062f.<\/li>\n<li class=\"text-start\">\u06cc\u06a9 \u0646\u0627\u0645 \u062f\u0627\u0645\u0646\u0647 \u06a9\u0647 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0634\u0645\u0627\u6307\u5411 (Point) \u0634\u062f\u0647 \u0628\u0627\u0634\u062f. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0645\u0631\u0627\u062c\u0639\u0647 \u0628\u0647 \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 \u062f\u0627\u0645\u0646\u0647\u200c\u0647\u0627 \u0648 DNS \u062f\u0631 \u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f (Parmin Cloud)\u060c \u0646\u062d\u0648\u0647 \u0627\u062a\u0635\u0627\u0644 \u062f\u0627\u0645\u0646\u0647\u200c\u0647\u0627 \u0628\u0647 \u0633\u0631\u0648\u0631\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u06cc\u0627\u062f \u0628\u06af\u06cc\u0631\u06cc\u062f. \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0641\u0631\u0636 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0634\u0645\u0627 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc DNS \u0632\u06cc\u0631 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u062f:\n<ul dir=\"auto\">\n<li class=\"text-start\">\u06cc\u06a9 \u0631\u06a9\u0648\u0631\u062f A \u0628\u0627 \u0646\u0627\u0645 <code class=\"cursor-pointer codespan\">your_domain<\/code> \u06a9\u0647 \u0628\u0647 \u0622\u062f\u0631\u0633 IP \u0639\u0645\u0648\u0645\u06cc \u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u0627\u0634\u0627\u0631\u0647 \u062f\u0627\u0631\u062f.<\/li>\n<li class=\"text-start\">\u06cc\u06a9 \u0631\u06a9\u0648\u0631\u062f A \u0628\u0627 \u0646\u0627\u0645 <code class=\"cursor-pointer codespan\">www.your_domain<\/code> \u06a9\u0647 \u0628\u0647 \u0622\u062f\u0631\u0633 IP \u0639\u0645\u0648\u0645\u06cc \u0633\u0631\u0648\u0631 \u0634\u0645\u0627 \u0627\u0634\u0627\u0631\u0647 \u062f\u0627\u0631\u062f.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0622\u0634\u0646\u0627\u06cc\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0628\u0627 uWSGI (\u0633\u0631\u0648\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u06cc \u06a9\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f) \u0648 \u0645\u0634\u062e\u0635\u0627\u062a WSGI \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0645\u0641\u06cc\u062f \u0628\u0627\u0634\u062f.<\/p>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<h3 class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0631\u062d\u0644\u0647 \u06f1 \u2014 \u0646\u0635\u0628 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627 \u0627\u0632 \u0645\u062e\u0627\u0632\u0646 \u0627\u0648\u0628\u0648\u0646\u062a\u0648<\/h3>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u0648\u0644\u06cc\u0646 \u0642\u062f\u0645 \u0634\u0645\u0627 \u0646\u0635\u0628 \u062a\u0645\u0627\u0645 \u0642\u0637\u0639\u0627\u062a \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0627\u0632 \u0645\u062e\u0627\u0632\u0646 \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f. \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f \u0634\u0627\u0645\u0644 <code class=\"cursor-pointer codespan\">pip<\/code> (\u0645\u062f\u06cc\u0631\u06cc\u062a \u067e\u06a9\u06cc\u062c \u067e\u0627\u06cc\u062a\u0648\u0646) \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a\u200c\u0647\u0627\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0634\u0645\u0627\u0633\u062a. \u0634\u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0647 \u0641\u0627\u06cc\u0644\u200c\u0647\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a uWSGI \u0644\u0627\u0632\u0645 \u0647\u0633\u062a\u0646\u062f\u060c \u0646\u06cc\u0627\u0632 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u0634\u062a.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u0628\u062a\u062f\u0627 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627\u06cc \u0645\u062d\u0644\u06cc \u0631\u0627 \u0628\u0647\u200c\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c276\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6g \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo apt update<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-15\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0633\u067e\u0633 \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627\u06cc\u06cc \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u0645\u062d\u06cc\u0637 \u067e\u0627\u06cc\u062a\u0648\u0646 \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f. \u0627\u06cc\u0646 \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627 \u0634\u0627\u0645\u0644 <code class=\"cursor-pointer codespan\">python3-pip<\/code> \u0648 \u0686\u0646\u062f\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u062a\u0648\u0633\u0639\u0647 \u062f\u06cc\u06af\u0631 \u0628\u0631\u0627\u06cc \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0646\u0648\u06cc\u0633\u06cc \u0642\u0648\u06cc \u0647\u0633\u062a\u0646\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c277\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6h \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo apt install python3-pip python3-dev build-essential libssl-dev libffi-dev python3-setuptools<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-19\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0627 \u0646\u0635\u0628 \u0627\u06cc\u0646 \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627\u060c \u0634\u0645\u0627 \u0622\u0645\u0627\u062f\u0647 \u0647\u0633\u062a\u06cc\u062f \u062a\u0627 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc (Virtual Environment) \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<h3 class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0631\u062d\u0644\u0647 \u06f2 \u2014 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646<\/h3>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646\u060c \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u067e\u0631\u0648\u0698\u0647 \u0645\u0633\u062a\u0642\u0644 \u0627\u0633\u062a \u06a9\u0647 \u0646\u0633\u062e\u0647\u200c\u0647\u0627\u06cc \u062e\u0627\u0635\u06cc \u0627\u0632 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0648 \u0645\u0627\u0698\u0648\u0644\u200c\u0647\u0627\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u0631\u0627 \u062f\u0631 \u062e\u0648\u062f \u0646\u06af\u0647 \u0645\u06cc\u200c\u062f\u0627\u0631\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0632\u0648\u0644\u0647 \u06a9\u0631\u062f\u0646 \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0627\u0632 \u0633\u0627\u06cc\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc \u0631\u0648\u06cc \u0647\u0645\u0627\u0646 \u0633\u06cc\u0633\u062a\u0645 \u0645\u0641\u06cc\u062f \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c \u0634\u0645\u0627 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646\u06cc \u0631\u0627 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 Flask \u0634\u0645\u0627 \u0627\u0632 \u0622\u0646 \u0627\u062c\u0631\u0627 \u062e\u0648\u0627\u0647\u062f \u0634\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u0628\u062a\u062f\u0627 \u067e\u06a9\u06cc\u062c <code class=\"cursor-pointer codespan\">python3-venv<\/code> \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c278\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6i \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo apt install python3-venv<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-29\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0633\u067e\u0633\u060c \u06cc\u06a9 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0627\u0635\u0644\u06cc \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 Flask \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c279\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6j \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">mkdir ~\/myproject<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-33\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u067e\u0633 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u0622\u0646\u060c \u0648\u0627\u0631\u062f \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0634\u0648\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c280\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6k \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">cd ~\/myproject<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-37\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0627 \u062a\u0627\u06cc\u067e \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631\u060c \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u0628\u0631\u0627\u06cc \u0630\u062e\u06cc\u0631\u0647 \u0646\u06cc\u0627\u0632\u0645\u0646\u062f\u06cc\u200c\u0647\u0627\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u067e\u0631\u0648\u0698\u0647 Flask \u062e\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c281\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6l \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">python3 -m venv myprojectenv<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-41\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06cc\u0646 \u06a9\u0627\u0631 \u06cc\u06a9 \u0646\u0633\u062e\u0647 \u0645\u062d\u0644\u06cc \u0627\u0632 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0648 <code class=\"cursor-pointer codespan\">pip<\/code> \u0631\u0627 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0628\u0647 \u0646\u0627\u0645 <code class=\"cursor-pointer codespan\">myprojectenv<\/code> \u062f\u0631\u0648\u0646 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u067e\u0631\u0648\u0698\u0647 \u0634\u0645\u0627 \u0646\u0635\u0628 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u067e\u06cc\u0634 \u0627\u0632 \u0646\u0635\u0628 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc\u060c \u0628\u0627\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0627 \u062a\u0627\u06cc\u067e \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c282\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6m \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">source myprojectenv\/bin\/activate<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-47\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u067e\u0631\u0627\u0645\u067e\u062a \u0634\u0645\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u0645\u06cc\u200c\u06a9\u0646\u062f \u062a\u0627 \u0646\u0634\u0627\u0646 \u062f\u0647\u062f \u0627\u06a9\u0646\u0648\u0646 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u062f\u0631 \u062d\u0627\u0644 \u06a9\u0627\u0631 \u0647\u0633\u062a\u06cc\u062f. \u0686\u06cc\u0632\u06cc \u0634\u0628\u06cc\u0647 \u0628\u0647 \u0627\u06cc\u0646 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f: <code class=\"cursor-pointer codespan\">(myprojectenv)user@host:~\/myproject$<\/code>.<\/p>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<h3 class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0631\u062d\u0644\u0647 \u06f3 \u2014 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 Flask<\/h3>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u062e\u0648\u062f \u0647\u0633\u062a\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f Flask \u0648 uWSGI \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0631\u062f\u0647 \u0648 \u0633\u067e\u0633 \u0637\u0631\u0627\u062d\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f \u0631\u0627 \u0622\u063a\u0627\u0632 \u06a9\u0646\u06cc\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u0628\u062a\u062f\u0627 <code class=\"cursor-pointer codespan\">wheel<\/code> \u0631\u0627 \u0628\u0627 \u0646\u0645\u0648\u0646\u0647 \u0645\u062d\u0644\u06cc <code class=\"cursor-pointer codespan\">pip<\/code> \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u067e\u06a9\u06cc\u062c\u200c\u0647\u0627 \u062d\u062a\u06cc \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u062f\u0627\u0634\u062a\u0646 \u0622\u0631\u0634\u06cc\u0648 wheel \u0646\u06cc\u0632 \u0646\u0635\u0628 \u0645\u06cc\u200c\u0634\u0648\u0646\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c283\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6n \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">pip install wheel -i https:\/\/pypi.parmincloud.ir\/simple<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-57\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><em>\u0646\u06a9\u062a\u0647: \u0645\u0647\u0645 \u0646\u06cc\u0633\u062a \u0627\u0632 \u06a9\u062f\u0627\u0645 \u0646\u0633\u062e\u0647 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0648\u0642\u062a\u06cc \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u0641\u0639\u0627\u0644 \u0627\u0633\u062a\u060c \u0628\u0627\u06cc\u062f \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 <code class=\"cursor-pointer codespan\">pip<\/code> (\u0646\u0647 pip3) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/em><\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0633\u067e\u0633\u060c Flask \u0648 uWSGI \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c284\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6o \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">pip install uwsgi flask -i https:\/\/pypi.parmincloud.ir\/simple<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-63\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>\u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0646\u0645\u0648\u0646\u0647<\/strong> \u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 Flask \u0631\u0627 \u062f\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631 \u062f\u0627\u0631\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0646\u0645\u0648\u0646\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f. Flask \u06cc\u06a9 \u0645\u06cc\u06a9\u0631\u0648\u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 \u0627\u0633\u062a \u0648 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u0632\u06cc\u0627\u062f\u06cc \u06a9\u0647 \u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9\u200c\u0647\u0627\u06cc \u06a9\u0627\u0645\u0644\u200c\u062a\u0631 \u062f\u0627\u0631\u0646\u062f \u0631\u0627 \u0634\u0627\u0645\u0644 \u0646\u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644\u060c \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 Flask \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0648\u0627\u062d\u062f \u0628\u0647 \u0646\u0627\u0645 <code class=\"cursor-pointer codespan\">myproject.py<\/code> \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c285\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6p \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">nano ~\/myproject\/myproject.py<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-69\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u06a9\u062f \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0642\u0631\u0627\u0631 \u0645\u06cc\u200c\u06af\u06cc\u0631\u062f. \u0627\u06cc\u0646 \u06a9\u062f Flask \u0631\u0627 \u0627\u06cc\u0645\u067e\u0648\u0631\u062a \u06a9\u0631\u062f\u0647 \u0648 \u06cc\u06a9 \u0622\u0628\u062c\u06a9\u062a Flask \u0646\u0645\u0648\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f:<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>~\/myproject\/myproject.py<\/strong><\/p>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">python<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c286\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-python rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6q \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">from flask import Flask<\/div>\n<div class=\"cm-line\">app = Flask(__name__)<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\">@app.route(&#8220;\/&#8221;)<\/div>\n<div class=\"cm-line\">def hello():<\/div>\n<div class=\"cm-line\">return &#8220;&lt;h1 style=&#8217;color:blue&#8217;&gt;Hello There!&lt;\/h1&gt;&#8221;<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\">if __name__ == &#8220;__main__&#8221;:<\/div>\n<div class=\"cm-line\">app.run(host=&#8217;0.0.0.0&#8242;)<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-74\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06cc\u0646 \u06a9\u062f \u062f\u0631 \u0648\u0627\u0642\u0639 \u062a\u0639\u06cc\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0686\u0647 \u0645\u062d\u062a\u0648\u0627\u06cc\u06cc \u0628\u0647 \u06a9\u0633\u06cc \u06a9\u0647 \u0628\u0647 \u062f\u0627\u0645\u0646\u0647 \u0631\u06cc\u0634\u0647 (root domain) \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f\u060c \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0634\u0648\u062f. \u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645\u060c \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06af\u0631 \u0631\u0627\u0647\u0646\u0645\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0627\u0648\u0644\u06cc\u0647 \u0633\u0631\u0648\u0631 \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0631\u062f\u0647 \u0628\u0627\u0634\u06cc\u062f\u060c \u0641\u0627\u06cc\u0631\u0648\u0627\u0644 UFW \u0634\u0645\u0627 \u0641\u0639\u0627\u0644 \u0627\u0633\u062a. \u0628\u0631\u0627\u06cc \u062a\u0633\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u060c \u0628\u0627\u06cc\u062f \u0627\u062c\u0627\u0632\u0647 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u067e\u0648\u0631\u062a 5000 \u0631\u0627 \u0628\u062f\u0647\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c287\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6r \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo ufw allow 5000<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-80\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 Flask \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 \u062a\u0627\u06cc\u067e \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u062a\u0633\u062a \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c288\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6s \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">python myproject.py<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-84\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062e\u0631\u0648\u062c\u06cc \u0645\u0634\u0627\u0628\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f \u06a9\u0647 \u0634\u0627\u0645\u0644 \u06cc\u06a9 \u0647\u0634\u062f\u0627\u0631 \u0645\u0641\u06cc\u062f \u0627\u0633\u062a \u06a9\u0647 \u06cc\u0627\u062f\u0622\u0648\u0631\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f \u0627\u0632 \u0627\u06cc\u0646 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0633\u0631\u0648\u0631 \u062f\u0631 \u0645\u062d\u06cc\u0637 \u067e\u0631\u0648\u062f\u0627\u06a9\u0634\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">text<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c289\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-text rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6t \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">Output<\/div>\n<div class=\"cm-line\">* Serving Flask app &#8220;myproject&#8221; (lazy loading)<\/div>\n<div class=\"cm-line\">* Environment: production<\/div>\n<div class=\"cm-line\">WARNING: Do not use the development server in a production environment.<\/div>\n<div class=\"cm-line\">Use a production WSGI server instead.<\/div>\n<div class=\"cm-line\">* Debug mode: off<\/div>\n<div class=\"cm-line\">* Running on http:\/\/0.0.0.0:5000\/ (Press CTRL+C to quit)<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-88\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0622\u062f\u0631\u0633 IP \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 <code class=\"cursor-pointer codespan\">:5000<\/code> \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0648\u0628 \u062e\u0648\u062f \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f. \u0634\u0645\u0627 \u067e\u06cc\u0627\u0645 <code class=\"cursor-pointer codespan\">Hello There!<\/code> \u0631\u0627 \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u06cc\u062f. \u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645\u060c \u06a9\u0644\u06cc\u062f <code class=\"cursor-pointer codespan\">CTRL + C<\/code> \u0631\u0627 \u062f\u0631 \u067e\u0646\u062c\u0631\u0647 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062e\u0648\u062f \u0628\u0632\u0646\u06cc\u062f \u062a\u0627 \u0633\u0631\u0648\u0631 \u062a\u0648\u0633\u0639\u0647 Flask \u0645\u062a\u0648\u0642\u0641 \u0634\u0648\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>\u0627\u06cc\u062c\u0627\u062f \u0646\u0642\u0637\u0647 \u0648\u0631\u0648\u062f WSGI<\/strong> \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u060c \u0641\u0627\u06cc\u0644\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0646\u0642\u0637\u0647 \u0648\u0631\u0648\u062f (Entry Point) \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0634\u0645\u0627 \u0639\u0645\u0644 \u06a9\u0646\u062f. \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0628\u0647 \u0633\u0631\u0648\u0631 uWSGI \u0645\u06cc\u200c\u06af\u0648\u06cc\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0628\u0627 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0634\u0645\u0627 \u062a\u0639\u0627\u0645\u0644 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0641\u0627\u06cc\u0644 \u0631\u0627 <code class=\"cursor-pointer codespan\">wsgi.py<\/code> \u0646\u0627\u0645\u200c\u06af\u0630\u0627\u0631\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c290\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6u \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">nano ~\/myproject\/wsgi.py<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-96\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644\u060c \u0646\u0645\u0648\u0646\u0647 Flask \u0631\u0627 \u0627\u0632 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f \u0627\u06cc\u0645\u067e\u0648\u0631\u062a \u06a9\u0631\u062f\u0647 \u0648 \u0633\u067e\u0633 \u0622\u0646 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>~\/myproject\/wsgi.py<\/strong><\/p>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">python<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c291\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-python rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6v \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">from myproject import app<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\">if __name__ == &#8220;__main__&#8221;:<\/div>\n<div class=\"cm-line\">app.run()<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-101\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f.<\/p>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<h3 class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0631\u062d\u0644\u0647 \u06f4 \u2014 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc uWSGI<\/h3>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0634\u0645\u0627 \u0627\u06a9\u0646\u0648\u0646 \u0628\u0627 \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u0648\u0631\u0648\u062f \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc uWSGI \u0628\u067e\u0631\u062f\u0627\u0632\u06cc\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>\u062a\u0633\u062a \u0627\u06cc\u0646\u06a9\u0647 \u0622\u06cc\u0627 uWSGI \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0627 \u0633\u0631\u0648 \u06a9\u0646\u062f<\/strong> \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0627\u0648\u0644\u06cc\u0646 \u0642\u062f\u0645\u060c \u062a\u0633\u062a \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f uWSGI \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0627 \u067e\u0627\u0633 \u062f\u0627\u062f\u0646 \u0646\u0627\u0645 \u0646\u0642\u0637\u0647 \u0648\u0631\u0648\u062f \u0634\u0645\u0627\u060c \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0631\u0627 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u0633\u0631\u0648 \u06a9\u0646\u062f. \u0646\u0627\u0645 \u0646\u0642\u0637\u0647 \u0648\u0631\u0648\u062f \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 <code class=\"cursor-pointer codespan\">wsgi:app<\/code> \u0627\u0633\u062a. \u0647\u0645\u0686\u0646\u06cc\u0646 \u067e\u0631\u0648\u062a\u06a9\u0644 \u0631\u0627 \u0631\u0648\u06cc HTTP \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 \u067e\u0648\u0631\u062a 5000 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c292\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6w \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">uwsgi &#8211;socket 0.0.0.0:5000 &#8211;protocol=http -w wsgi:app<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-111\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0622\u062f\u0631\u0633 IP \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 <code class=\"cursor-pointer codespan\">:5000<\/code> \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0648\u0628 \u062e\u0648\u062f \u062f\u0648\u0628\u0627\u0631\u0647 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f. \u0628\u0627\u06cc\u062f \u062e\u0631\u0648\u062c\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u0628\u0628\u06cc\u0646\u06cc\u062f. \u067e\u0633 \u0627\u0632 \u062a\u0627\u06cc\u06cc\u062f \u0639\u0645\u0644\u06a9\u0631\u062f \u0635\u062d\u06cc\u062d\u060c <code class=\"cursor-pointer codespan\">CTRL + C<\/code> \u0631\u0627 \u062f\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062e\u0648\u062f \u0641\u0634\u0627\u0631 \u062f\u0647\u06cc\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0627\u0631 \u0634\u0645\u0627 \u0628\u0627 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u062a\u0645\u0627\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0622\u0646 \u0631\u0627 \u063a\u06cc\u0631\u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c293\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6x \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">deactivate<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-117\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>\u0627\u06cc\u062c\u0627\u062f \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc uWSGI<\/strong> \u0634\u0645\u0627 \u062a\u0633\u062a \u06a9\u0631\u062f\u06cc\u062f \u06a9\u0647 uWSGI \u0642\u0627\u062f\u0631 \u0628\u0647 \u0633\u0631\u0648 \u06a9\u0631\u062f\u0646 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0634\u0645\u0627 \u0627\u0633\u062a\u060c \u0627\u0645\u0627 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0637\u0648\u0644\u0627\u0646\u06cc\u200c\u0645\u062f\u062a \u0628\u0647 \u0686\u06cc\u0632\u06cc \u067e\u0627\u06cc\u062f\u0627\u0631\u062a\u0631 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f. \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc uWSGI \u0628\u0627 \u06af\u0632\u06cc\u0646\u0647\u200c\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637\u0647 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0641\u0627\u06cc\u0644 \u0631\u0627 \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u0642\u0631\u0627\u0631 \u062f\u0647\u06cc\u062f \u0648 \u0622\u0646 \u0631\u0627 <code class=\"cursor-pointer codespan\">myproject.ini<\/code> \u0628\u0646\u0627\u0645\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c312\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6y \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">nano ~\/myproject\/myproject.ini<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-123\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062f\u0627\u062e\u0644 \u0641\u0627\u06cc\u0644\u060c \u0622\u0646 \u0631\u0627 \u0628\u0627 \u0647\u062f\u0631 <code class=\"cursor-pointer codespan\">[uwsgi]<\/code> \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f \u062a\u0627 uWSGI \u0628\u062f\u0627\u0646\u062f \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0631\u0627 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u062f. \u0633\u067e\u0633 \u0645\u0627\u0698\u0648\u0644 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>~\/myproject\/myproject.ini<\/strong><\/p>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">ini<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c313\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-ini rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c6z \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\" data-language=\"properties\">\n<div class=\"cm-line\">[uwsgi]<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5m\">module <\/span>= wsgi:app<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5m\">master <\/span>= true<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5m\">processes <\/span>= 5<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5m\">socket <\/span>= myproject.sock<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5m\">chmod-socket <\/span>= 660<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5m\">vacuum <\/span>= true<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5m\">die-on-term <\/span>= true<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-128\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062f\u0631 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644\u060c \u0628\u0647 uWSGI \u0645\u06cc\u200c\u06af\u0648\u06cc\u06cc\u0645 \u06a9\u0647 \u062f\u0631 \u062d\u0627\u0644\u062a master \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0634\u0648\u062f \u0648 \u06f5 \u067e\u0631\u062f\u0627\u0632\u0634 worker \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u062f. \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 Nginx \u0627\u062a\u0635\u0627\u0644\u0627\u062a \u06a9\u0644\u0627\u06cc\u0646\u062a \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 uWSGI \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0627\u06cc\u0646 \u062f\u0648 \u0631\u0648\u06cc \u06cc\u06a9 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631 \u0647\u0633\u062a\u0646\u062f\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u0633\u0648\u06a9\u062a \u06cc\u0648\u0646\u06cc\u06a9\u0633 (Unix Socket) \u0633\u0631\u06cc\u0639\u200c\u062a\u0631 \u0648 \u0627\u0645\u0646\u200c\u062a\u0631 \u0627\u0633\u062a. \u0633\u0648\u06a9\u062a \u0631\u0627 <code class=\"cursor-pointer codespan\">myproject.sock<\/code> \u0645\u06cc\u200c\u0646\u0627\u0645\u06cc\u0645. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u062c\u0648\u0632\u0647\u0627\u06cc \u0633\u0648\u06a9\u062a \u0631\u0627 \u0631\u0648\u06cc 660 \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u062a\u0627 \u06af\u0631\u0648\u0647 Nginx \u0628\u062a\u0648\u0627\u0646\u062f \u0622\u0646 \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u062f. \u06af\u0632\u06cc\u0646\u0647 <code class=\"cursor-pointer codespan\">vacuum = true<\/code> \u0633\u0648\u06a9\u062a \u0631\u0627 \u0647\u0646\u06af\u0627\u0645 \u062a\u0648\u0642\u0641 \u067e\u0631\u062f\u0627\u0632\u0634 \u067e\u0627\u06a9\u0633\u0627\u0632\u06cc \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u067e\u0633 \u0627\u0632 \u0627\u062a\u0645\u0627\u0645\u060c \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f.<\/p>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<h3 class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0631\u062d\u0644\u0647 \u06f5 \u2014 \u0627\u06cc\u062c\u0627\u062f \u0641\u0627\u06cc\u0644 \u0633\u0631\u0648\u06cc\u0633 systemd<\/h3>\n<p class=\"svelte-4sys19\" dir=\"auto\">Systemd \u0645\u062c\u0645\u0648\u0639\u0647\u200c\u0627\u06cc \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u0633\u062a \u06a9\u0647 \u06cc\u06a9 \u0645\u062f\u0644 init \u0633\u0631\u06cc\u0639 \u0648 \u0627\u0646\u0639\u0637\u0627\u0641\u200c\u067e\u0630\u06cc\u0631 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0633\u0631\u0648\u06cc\u0633\u200c\u0647\u0627\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f. \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0633\u0631\u0648\u06cc\u0633 systemd \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 init \u0627\u0648\u0628\u0648\u0646\u062a\u0648 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u062f \u062a\u0627 uWSGI \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0631\u062f\u0647 \u0648 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 Flask \u0631\u0627 \u0647\u0631 \u0632\u0645\u0627\u0646 \u06a9\u0647 \u0633\u0631\u0648\u0631 \u0628\u0648\u062a \u0645\u06cc\u200c\u0634\u0648\u062f\u060c \u0633\u0631\u0648 \u06a9\u0646\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0633\u0631\u0648\u06cc\u0633 \u0628\u0627 \u067e\u0633\u0648\u0646\u062f <code class=\"cursor-pointer codespan\">.service<\/code> \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc <code class=\"cursor-pointer codespan\">\/etc\/systemd\/system<\/code> \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c316\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c70 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo nano \/etc\/systemd\/system\/myproject.service<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-140\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062f\u0627\u062e\u0644 \u0641\u0627\u06cc\u0644\u060c \u0628\u0627 \u0628\u062e\u0634 <code class=\"cursor-pointer codespan\">[Unit]<\/code> \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0645\u062a\u0627\u062f\u06cc\u062a\u0627 \u0648 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc\u200c\u0647\u0627 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>\/etc\/systemd\/system\/myproject.service<\/strong><\/p>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">ini<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c318\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-ini rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c71 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">[Unit]<\/div>\n<div class=\"cm-line\">Description=uWSGI instance to serve myproject<\/div>\n<div class=\"cm-line\">After=network.target<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\">[Service]<\/div>\n<div class=\"cm-line\">User=sammy<\/div>\n<div class=\"cm-line\">Group=www-data<\/div>\n<div class=\"cm-line\">WorkingDirectory=\/home\/sammy\/myproject<\/div>\n<div class=\"cm-line\">Environment=&#8221;PATH=\/home\/sammy\/myproject\/myprojectenv\/bin&#8221;<\/div>\n<div class=\"cm-line\">ExecStart=\/home\/sammy\/myproject\/myprojectenv\/bin\/uwsgi &#8211;ini myproject.ini<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\">[Install]<\/div>\n<div class=\"cm-line\">WantedBy=multi-user.target<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-145\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><em>\u0646\u06a9\u062a\u0647: \u0628\u0647 \u062c\u0627\u06cc <code class=\"cursor-pointer codespan\">sammy<\/code> \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062e\u0648\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f \u0648 \u0645\u0633\u06cc\u0631\u0647\u0627 \u0631\u0627 \u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u062e\u0648\u062f \u0627\u0635\u0644\u0627\u062d \u06a9\u0646\u06cc\u062f.<\/em><\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f \u06a9\u0647 \u0633\u0631\u0648\u06cc\u0633 \u0628\u0627\u06cc\u062f \u0628\u0627 \u06a9\u0627\u0631\u0628\u0631 <code class=\"cursor-pointer codespan\">sammy<\/code> \u0648 \u06af\u0631\u0648\u0647 <code class=\"cursor-pointer codespan\">www-data<\/code> (\u0628\u0631\u0627\u06cc \u0627\u0631\u062a\u0628\u0627\u0637 Nginx) \u0627\u062c\u0631\u0627 \u0634\u0648\u062f. \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u06a9\u0627\u0631\u06cc \u0648 \u0645\u0633\u06cc\u0631 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0645\u062d\u06cc\u0637\u06cc \u0631\u0648\u06cc \u067e\u0631\u0648\u0698\u0647 \u0634\u0645\u0627 \u062a\u0646\u0638\u06cc\u0645 \u0634\u062f\u0647 \u0627\u0633\u062a. \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u062f\u0633\u062a\u0648\u0631 \u0627\u062c\u0631\u0627\u06cc uWSGI \u0628\u0627 \u0641\u0627\u06cc\u0644 ini \u0645\u0634\u062e\u0635 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f. \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0633\u0631\u0648\u06cc\u0633 uWSGI \u062e\u0648\u062f \u0631\u0627 \u0627\u0633\u062a\u0627\u0631\u062a \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c320\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c72 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo systemctl start myproject<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-153\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0633\u067e\u0633 \u0622\u0646 \u0631\u0627 \u0641\u0639\u0627\u0644 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0628\u0648\u062a \u0627\u0633\u062a\u0627\u0631\u062a \u0634\u0648\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c322\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c73 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo systemctl enable myproject<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-157\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0648\u0636\u0639\u06cc\u062a \u0622\u0646 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c324\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c74 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo systemctl status myproject<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-161\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062e\u0631\u0648\u062c\u06cc \u0628\u0627\u06cc\u062f \u0646\u0634\u0627\u0646 \u062f\u0647\u062f \u06a9\u0647 \u0633\u0631\u0648\u06cc\u0633 <code class=\"cursor-pointer codespan\">active (running)<\/code> \u0627\u0633\u062a.<\/p>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<h3 class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0631\u062d\u0644\u0647 \u06f6 \u2014 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Nginx \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u06a9\u0633\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627<\/h3>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0633\u0631\u0648\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 uWSGI \u0634\u0645\u0627 \u0627\u06a9\u0646\u0648\u0646 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0627\u0633\u062a \u0648 \u0645\u0646\u062a\u0638\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0631\u0648\u06cc \u0641\u0627\u06cc\u0644 \u0633\u0648\u06a9\u062a \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647\u060c Nginx \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u062a\u0627 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u0648\u0628 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0631\u0648\u062a\u06a9\u0644 uwsgi \u0628\u0647 \u0622\u0646 \u0633\u0648\u06a9\u062a \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Server Block \u062c\u062f\u06cc\u062f \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc <code class=\"cursor-pointer codespan\">sites-available<\/code> \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c326\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c75 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\" data-language=\"shell\">\n<div class=\"cm-line\"><span class=\"\u037c5m\">sudo<\/span> nano \/etc\/nginx\/sites-available\/myproject<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-171\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u06cc\u06a9 Server Block \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0647 Nginx \u0628\u06af\u0648\u06cc\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u067e\u0648\u0631\u062a 80 \u06af\u0648\u0634 \u062f\u0647\u062f \u0648 \u0627\u0632 \u0627\u06cc\u0646 \u0628\u0644\u0627\u06a9 \u0628\u0631\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627\u06cc \u062f\u0627\u0645\u0646\u0647 \u0634\u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u062f:<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>\/etc\/nginx\/sites-available\/myproject<\/strong><\/p>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">nginx<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c328\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-nginx rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c76 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\" data-language=\"nginx\">\n<div class=\"cm-line\"><span class=\"\u037c5s\">server<\/span> {<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">listen<\/span> 80;<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">server_name<\/span> <span class=\"\u037c5n\">your_domain www<\/span>.your_domain;<\/div>\n<div class=\"cm-line\"><\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">location<\/span> \/ {<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5s\">include<\/span> uwsgi_params;<\/div>\n<div class=\"cm-line\"><span class=\"\u037c5m\">uwsgi_pass unix<\/span>:\/home\/sammy\/myproject\/myproject.sock;<\/div>\n<div class=\"cm-line\">}<\/div>\n<div class=\"cm-line\">}<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-176\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06cc\u0646 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u0627\u0645\u0644 \u0641\u0627\u06cc\u0644 <code class=\"cursor-pointer codespan\">uwsgi_params<\/code> \u0627\u0633\u062a \u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0633\u0648\u06a9\u062a\u06cc \u06a9\u0647 \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0642\u0628\u0644 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0631\u062f\u06cc\u062f\u060c \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc\u200c\u06a9\u0646\u062f. (\u0628\u0627\u0632 \u0647\u0645 \u0645\u0633\u06cc\u0631 \u0633\u0648\u06a9\u062a \u0631\u0627 \u0628\u0627 \u0646\u0627\u0645 \u06a9\u0627\u0631\u0628\u0631\u06cc \u062e\u0648\u062f \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f). \u0641\u0627\u06cc\u0644 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0628\u0646\u062f\u06cc\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0631\u0627\u06cc \u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 \u0627\u06cc\u0646 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc\u060c \u06cc\u06a9 \u0644\u06cc\u0646\u06a9 \u0646\u0645\u0627\u062f\u06cc\u0646 (Symbolic Link) \u0628\u0647 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc <code class=\"cursor-pointer codespan\">sites-enabled<\/code> \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c330\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c77 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo ln -s \/etc\/nginx\/sites-available\/myproject \/etc\/nginx\/sites-enabled<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-182\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06af\u0631 \u0641\u0627\u06cc\u0644 <code class=\"cursor-pointer codespan\">default<\/code> \u062f\u0631 <code class=\"cursor-pointer codespan\">sites-enabled<\/code> \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f\u060c \u0644\u06cc\u0646\u06a9 \u0622\u0646 \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u0645\u0627 \u062a\u062f\u0627\u062e\u0644 \u0646\u06a9\u0646\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c332\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c78 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo unlink \/etc\/nginx\/sites-enabled\/default<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-186\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0633\u067e\u0633 \u062e\u0637\u0627\u0647\u0627\u06cc \u0646\u062d\u0648\u06cc (Syntax) \u0631\u0627 \u062a\u0633\u062a \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c333\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c79 \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo nginx -t<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-190\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06af\u0631 \u0645\u0634\u06a9\u0644\u06cc \u0646\u0628\u0648\u062f\u060c Nginx \u0631\u0627 \u0631\u06cc\u200c\u0627\u0633\u062a\u0627\u0631\u062a \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c334\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7a \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo systemctl restart nginx<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-194\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0641\u0627\u06cc\u0631\u0648\u0627\u0644 \u0631\u0627 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f. \u062f\u06cc\u06af\u0631 \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u067e\u0648\u0631\u062a 5000 \u0646\u062f\u0627\u0631\u06cc\u062f\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0622\u0646 \u0642\u0627\u0646\u0648\u0646 \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0631\u062f\u0647 \u0648 \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 Nginx \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c338\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7b \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo ufw delete allow 5000<\/div>\n<div class=\"cm-line\">sudo ufw allow &#8216;Nginx Full&#8217;<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-198\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0647 \u0646\u0627\u0645 \u062f\u0627\u0645\u0646\u0647 \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u062f\u0631 \u0645\u0631\u0648\u0631\u06af\u0631 \u0648\u0628 \u0628\u0631\u0648\u06cc\u062f. \u0628\u0627\u06cc\u062f \u062e\u0631\u0648\u062c\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f.<\/p>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<h3 class=\"svelte-4sys19\" dir=\"auto\">\u0645\u0631\u062d\u0644\u0647 \u06f7 \u2014 \u0627\u06cc\u0645\u0646\u200c\u0633\u0627\u0632\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646<\/h3>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0627\u0645\u0646\u06cc\u062a \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0633\u0631\u0648\u0631 \u062e\u0648\u062f\u060c \u06cc\u06a9 \u06af\u0648\u0627\u0647\u06cc SSL \u0628\u0631\u0627\u06cc \u062f\u0627\u0645\u0646\u0647 \u062e\u0648\u062f \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0622\u0645\u0648\u0632\u0634 \u0646\u062d\u0648\u0647 \u062f\u0631\u06cc\u0627\u0641\u062a \u06af\u0648\u0627\u0647\u06cc \u0631\u0627\u06cc\u06af\u0627\u0646 \u0627\u0632 Let&#8217;s Encrypt \u0631\u0627 \u062a\u0648\u0636\u06cc\u062d \u0645\u06cc\u200c\u062f\u0647\u06cc\u0645.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u0628\u062a\u062f\u0627 Certbot \u0648 \u067e\u0644\u0627\u06af\u06cc\u0646 Nginx \u0622\u0646 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c340\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7c \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo apt install certbot python3-certbot-nginx<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-208\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u06cc\u0646 \u067e\u0644\u0627\u06af\u06cc\u0646\u060c \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u0631\u0627 \u062a\u0627\u06cc\u067e \u06a9\u0646\u06cc\u062f:<\/p>\n<div><\/div>\n<div class=\"relative my-2 flex flex-col rounded-xl border border-[#0000000A] bg-[#F7F7F7] dark:bg-[#202123] p-2\" dir=\"ltr\">\n<div class=\"absolute pl-2 py-1 text-xs font-medium text-text-300 dark:text-white\">bash<\/div>\n<div class=\"sticky top-8 mb-1 flex items-center justify-end z-11 text-xs text-black dark:text-white\">\n<div class=\"flex items-center gap-0.5 translate-y-[1px]\">\n<div id=\"bits-c342\" class=\"flex\" tabindex=\"0\" data-state=\"closed\" data-delay-duration=\"200\" data-tooltip-trigger=\"\" aria-label=\"Copy\"><\/div>\n<\/div>\n<\/div>\n<div class=\"language-bash rounded-b-lg overflow-hidden\">\n<div class=\"h-full w-full\">\n<div class=\"cm-editor \u037c1 \u037c2 \u037c4 \u037c7d \u037c5k\">\n<div class=\"cm-announced\" aria-live=\"polite\"><\/div>\n<div class=\"cm-scroller\" tabindex=\"-1\">\n<div class=\"cm-content\" role=\"textbox\" contenteditable=\"false\" spellcheck=\"false\" translate=\"no\" aria-multiline=\"true\">\n<div class=\"cm-line\">sudo certbot &#8211;nginx -d your_domain -d www.your_domain<\/div>\n<\/div>\n<div class=\"cm-layer cm-layer-above cm-cursorLayer\" aria-hidden=\"true\"><\/div>\n<div class=\"cm-layer cm-selectionLayer\" aria-hidden=\"true\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"plt-canvas-45b54bc8-e1b9-4537-aee8-a1a7c1d420bf-212\" class=\"bg-gray-50 dark:bg-[#202123] text-gray-900 dark:text-white max-w-full overflow-x-auto scrollbar-hidden\"><\/div>\n<\/div>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 Certbot \u0631\u0627 \u0628\u0627 \u067e\u0644\u0627\u06af\u06cc\u0646 <code class=\"cursor-pointer codespan\">--nginx<\/code> \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code class=\"cursor-pointer codespan\">-d<\/code> \u0646\u0627\u0645\u200c\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u06af\u0648\u0627\u0647\u06cc \u0628\u0631\u0627\u06cc \u0622\u0646\u200c\u0647\u0627 \u0645\u0639\u062a\u0628\u0631 \u0628\u0627\u0634\u062f \u0631\u0627 \u0645\u0634\u062e\u0635 \u0645\u06cc\u200c\u06a9\u0646\u062f. \u0627\u06af\u0631 \u0627\u06cc\u0646 \u0627\u0648\u0644\u06cc\u0646 \u0628\u0627\u0631 \u0627\u0633\u062a \u06a9\u0647 Certbot \u0631\u0627 \u0627\u062c\u0631\u0627 \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0627\u0632 \u0634\u0645\u0627 \u062e\u0648\u0627\u0633\u062a\u0647 \u0645\u06cc\u200c\u0634\u0648\u062f \u06cc\u06a9 \u0622\u062f\u0631\u0633 \u0627\u06cc\u0645\u06cc\u0644 \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0647 \u0648 \u0628\u0627 \u0634\u0631\u0627\u06cc\u0637 \u062e\u062f\u0645\u0627\u062a \u0645\u0648\u0627\u0641\u0642\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u0633\u067e\u0633 Certbot \u0627\u0632 \u0634\u0645\u0627 \u0645\u06cc\u200c\u067e\u0631\u0633\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc\u200c\u062e\u0648\u0627\u0647\u06cc\u062f \u062a\u0646\u0638\u06cc\u0645\u0627\u062a HTTPS \u062e\u0648\u062f \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f. \u06af\u0632\u06cc\u0646\u0647 \u06f2 (Redirect) \u0631\u0627 \u0628\u0631\u0627\u06cc \u0647\u062f\u0627\u06cc\u062a \u062a\u0645\u0627\u0645 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u200c\u0647\u0627 \u0628\u0647 HTTPS \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f. Nginx \u0645\u062c\u062f\u062f\u0627\u064b \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u06cc\u200c\u0634\u0648\u062f \u062a\u0627 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u062c\u062f\u06cc\u062f \u0631\u0627 \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u062f.<\/p>\n<div><\/div>\n<p class=\"svelte-4sys19\" dir=\"auto\">\u067e\u0633 \u0627\u0632 \u0645\u0648\u0641\u0642\u06cc\u062a\u200c\u0622\u0645\u06cc\u0632 \u0628\u0648\u062f\u0646 \u0641\u0631\u0622\u06cc\u0646\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0631\u0627\u06cc \u062a\u0627\u06cc\u06cc\u062f \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc\u060c \u06cc\u06a9 \u0628\u0627\u0631 \u062f\u06cc\u06af\u0631 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code class=\"cursor-pointer codespan\">https:\/\/<\/code> \u0628\u0647 \u062f\u0627\u0645\u0646\u0647 \u062e\u0648\u062f \u0628\u0631\u0648\u06cc\u062f. \u0628\u0627\u06cc\u062f \u062e\u0631\u0648\u062c\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f \u0631\u0627 \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 \u0646\u0634\u0627\u0646\u06af\u0631 \u0627\u0645\u0646\u06cc\u062a\u06cc \u0645\u0631\u0648\u0631\u06af\u0631 \u062e\u0648\u062f \u0628\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u0646\u0634\u0627\u0646 \u0645\u06cc\u200c\u062f\u0647\u062f \u0633\u0627\u06cc\u062a \u0627\u06cc\u0645\u0646 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<div><\/div>\n<hr class=\"border-[#EBEBEB] dark:border-[#EBEBEB]\/16\" \/>\n<p class=\"svelte-4sys19\" dir=\"auto\"><strong>\u0646\u062a\u06cc\u062c\u0647\u200c\u06af\u06cc\u0631\u06cc<\/strong> \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0634\u0645\u0627 \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u0627\u06cc\u0647 Flask \u0631\u0627 \u062f\u0631 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646 \u0627\u06cc\u062c\u0627\u062f \u0648 \u0627\u06cc\u0645\u0646\u200c\u0633\u0627\u0632\u06cc \u06a9\u0631\u062f\u06cc\u062f. \u0633\u067e\u0633 \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u0648\u0631\u0648\u062f WSGI \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u062f \u062a\u0627 \u0633\u0631\u0648\u0631\u0647\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0633\u0627\u0632\u06af\u0627\u0631 \u0628\u0627 WSGI \u0628\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0627 \u0622\u0646 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u0646\u062f\u060c \u0648 \u0633\u0631\u0648\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 uWSGI \u0631\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0631\u062f\u06cc\u062f. \u067e\u0633 \u0627\u0632 \u0622\u0646\u060c \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u0633\u0631\u0648\u06cc\u0633 systemd \u0628\u0631\u0627\u06cc \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631 \u0633\u0631\u0648\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062f\u0631 \u0632\u0645\u0627\u0646 \u0628\u0648\u062a \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u062f. \u0634\u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u06cc\u06a9 Server Block \u062f\u0631 Nginx \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u062f \u06a9\u0647 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u06a9\u0644\u0627\u06cc\u0646\u062a\u200c\u0647\u0627\u06cc \u0648\u0628 \u0631\u0627 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0647\u062f\u0627\u06cc\u062a \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u062a\u0631\u0627\u0641\u06cc\u06a9 \u0633\u0631\u0648\u0631 \u062e\u0648\u062f \u0631\u0627 \u0628\u0627 Let&#8217;s Encrypt \u0627\u06cc\u0645\u0646\u200c\u0633\u0627\u0632\u06cc \u06a9\u0631\u062f\u06cc\u062f. \u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0645\u0639\u0645\u0627\u0631\u06cc \u0628\u0631\u0627\u06cc \u0633\u0631\u0648 \u06a9\u0631\u062f\u0646 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646\u200c\u0647\u0627\u06cc Flask \u06a9\u0647 \u0637\u0631\u0627\u062d\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p dir=\"auto\">\n<p dir=\"auto\">\n<p dir=\"auto\">\n<p dir=\"auto\">\n<p dir=\"auto\">\u0627\u0632 \u0647\u0645\u0631\u0627\u0647\u06cc \u0634\u0645\u0627 \u0628\u0627 <strong><a href=\"https:\/\/parmin.cloud\/\">\u067e\u0627\u0631\u0645\u06cc\u0646 \u06a9\u0644\u0648\u062f<\/a><\/strong> \u0633\u067e\u0627\u0633\u06af\u0632\u0627\u0631\u06cc\u0645.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0645\u0642\u062f\u0645\u0647 \u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0634\u0645\u0627 \u06cc\u06a9 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u06cc\u06a9\u0631\u0648\u0641\u0631\u06cc\u0645\u200c\u0648\u0631\u06a9 Flask \u0631\u0648\u06cc \u0627\u0648\u0628\u0648\u0646\u062a\u0648 24.04 \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f. \u0628\u062e\u0634 \u0639\u0645\u062f\u0647 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0646\u062d\u0648\u0647 \u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0633\u0631\u0648\u0631 \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 uWSGI\u060c \u0646\u062d\u0648\u0647 \u0627\u062c\u0631\u0627\u06cc \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u0648 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc Nginx \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0645\u0639\u06a9\u0648\u0633 (Reverse Proxy) \u062f\u0631 \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u062f. \u067e\u06cc\u0634\u200c\u0646\u06cc\u0627\u0632\u0647\u0627 \u067e\u06cc\u0634 \u0627\u0632 \u0634\u0631\u0648\u0639 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627\u060c \u0628\u0627\u06cc\u062f \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 &hellip;<\/p>\n","protected":false},"author":9,"featured_media":6794,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[258,8],"tags":[],"class_list":["post-6793","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ubuntu","category-8"],"_links":{"self":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6793","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/comments?post=6793"}],"version-history":[{"count":0,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/posts\/6793\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media\/6794"}],"wp:attachment":[{"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/media?parent=6793"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/categories?post=6793"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/parmin.cloud\/blog\/wp-json\/wp\/v2\/tags?post=6793"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}