[{"data":1,"prerenderedAt":214},["ShallowReactive",2],{"seo-verification":3,"blog-نشر-تطبيق-nuxt-على-vps-ma-ar":6,"promo-bar-likely":213},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-نشر-تطبيق-nuxt-على-vps-ma-ar",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":35,"sections":36,"ctaTitle":155,"ctaBody":156,"ctaButton":157,"ctaUrl":158,"relatedPosts":159},47,"نشر-تطبيق-nuxt-على-vps",{"fr":12,"en":13,"ar":10,"es":14},"deployer-nuxt-vps","deploy-a-nuxt-application-on-a-vps","desplegar-nuxt-en-un-vps","نشر تطبيق Nuxt على VPS","نشر Nuxt على VPS: ‏Nitro وPM2 وNginx وSSL وأنماط التصيير وrouteRules ومتغيّرات البيئة واستكشاف أخطاء الإنتاج.",12,1,false,"2026-05-04T00:00:00+00:00","2026-11-08T01:13:12+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},4,"التطوير","developpement","bg-warning\u002F10 text-warning","dev",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-nuxt-vps-poster.svg",{"categorySlug":24,"appSlug":34},"nuxt-stack","يُنتج Nuxt ومحرّكه Nitro حزمة Node.js مستقلة، مثالية للاستضافة الذاتية على VPS. يحرّرك هذا النهج من حصص الدوال السحابية ويمنحك تحكّمًا كاملًا في التخزين المؤقت وترويسات HTTP واستراتيجيات التصيير لكل صفحة على حدة. يتناول هذا الدليل الإعداد الكامل: اختيار نمط التصيير، وتهيئة المشروع، والبناء، ومتغيّرات البيئة، والإشراف على العمليات باستخدام PM2، والوكيل العكسي Nginx وHTTPS، والسجلّات، وصولًا إلى معالجة الأخطاء التي تعطّل الإنتاج.",[37,41,53,82,85,88,113,116,119,142,145,148,152],{"type":38,"title":39,"body":40},"h2","لماذا تستضيف Nuxt ذاتيًا على VPS؟","بفضل Nitro، يُنشئ Nuxt بناءً قابلًا للنقل (`preset: node-server`) يبدأ كخادم Node بسيط يستمع على منفذ. وهذه القابلية للنقل مثالية لـVPS: تستفيد من التصيير من جهة الخادم ومن مسارات `server\u002Fapi` ومن التخزين المؤقت للمسارات دون الاعتماد على بيئة تشغيل edge احتكارية.\n\nتُلغي الاستضافة الذاتية حصص الدوال وتتيح لك ضبط التخزين المؤقت والضغط وعدد نسخ Node. ولتطبيق Vue 3 في الإنتاج مع مصادقة واستدعاءات API من الخادم وتحسين SEO متقَن، يوفّر VPS ثبات خادم دائم وتكلفة ثابتة، دون مفاجآت فاتورة حسب الاستدعاء.\n\nلكن ذلك يتطلّب خادمًا يقبل عملية Node.js دائمة، وأغلب الاستضافات المشتركة لا تسمح بها، ما يستبعد SSR ومسارات الخادم من البداية. على VPS تختار أيضًا إصدار Node.js والوكيل العكسي (Nginx أو Caddy) وطريقة إدارة شهادات TLS، دون سقف مصطنع على المعالج أو الذاكرة.",{"type":42,"title":43,"items":44},"ul","فوائد ملموسة لاستضافة Nuxt ذاتيًا",[45,46,47,48,49,50,51,52],"مسارات خادم `server\u002Fapi` غير محدودة، دون فوترة لكل استدعاء.","SSR وعملية hydration الخاصة بـVue 3 تُقدَّمان من خادم Node دائم ومستقر.","بناء Nitro قابل للنقل (`node-server`) سهل التعبئة في حاوية وإعادة الإنتاج.","تخزين مؤقت للمسارات وقواعد `routeRules` (SSR وSSG وISR وSWR) مُتحكَّم فيها من جهة الخادم.","عدّة تطبيقات Nuxt على VPS واحد خلف Nginx، لكلّ منها منفذ داخلي خاص (3000 و3001…).","متغيرات بيئة وقت التشغيل (`runtimeConfig`) تُدار مباشرة على خادمك الخاص.","تحكم كامل في ترويسات HTTP (CSP وHSTS وcache-control) عبر middleware في Nitro.","موقع مولَّد مسبقًا بالأمر `nuxt generate` يقدّمه Nginx وحده، دون عملية Node.js دائمة.",{"type":54,"title":55,"headers":56,"rows":61},"comparison","SSR أم SSG أم SPA أم الهجين: أيّ نمط تصيير تختار؟",[57,58,59,60],"النمط","التصيير","عملية Node.js","الأنسب لـ",[62,67,72,77],[63,64,65,66],"SSR (افتراضي)","عند كل طلب، من جهة الخادم","نعم، يشرف عليها PM2","تطبيق ديناميكي، SEO، محتوى مخصّص",[68,69,70,71],"SSG (`nuxt generate`)","أثناء البناء، بصيغة HTML ثابتة","لا، يقدّم Nginx المجلّد `.output\u002Fpublic`","مدوّنة، موقع تعريفي، محتوى قليل التغيّر",[73,74,75,76],"SPA (`ssr: false` + `nuxt generate`)","داخل المتصفّح","لا، يكفي Nginx","لوحة تحكّم داخلية، تطبيق خلف المصادقة",[78,79,80,81],"هجين (`routeRules`)","حسب المسار: SSR، توليد مسبق، SWR، ISR","نعم، خادم Nitro","تطبيق يجمع صفحات ثابتة ومسارات API",{"type":38,"title":83,"body":84},"المتطلبات المسبقة للعتاد والبرمجيات","كما هو الحال مع أيّ إطار عمل حديث، يستهلك بناء Nuxt الذاكرة: استهدف 2 غيغابايت من RAM على الأقل (يمكن تنفيذ البناء في CI إن كان VPS متواضعًا). أثناء التشغيل يكفي معالج افتراضي واحد و1 غيغابايت لخادم Nitro تحت حمل خفيف؛ ارفع إلى 2 vCPU و2 غيغابايت للتطبيقات ذات مسارات `server\u002Fapi` المتزامنة الكثيرة، وإلى 2 vCPU و4 غيغابايت إن تقاسمت عدّة تطبيقات Nuxt الخادم نفسه.\n\nأما الإصدارات، فابدأ من Nuxt 4: بلغ Nuxt 3 نهاية عمره في 31 يوليو 2026 ولم يعد يتلقّى إصلاحات ولا تحديثات أمنية. والنشر الموصوف هنا واحد في الإصدارين، لأن Nitro هو من يُنتج الخادم. ثبّت خطّ LTS من Node.js ما زال مدعومًا، أي Node.js 24 أو 26 (انتهى دعم Node.js 20 في 30 أبريل 2026)، عبر `nvm` أو صورة `node:24-alpine`، مع PM2 للإشراف على العمليات. ‏`node-server` هو الإعداد المسبق الذي يطبّقه Nitro افتراضيًا على بناء الإنتاج، وذكره في `nuxt.config.ts` يجعله صريحًا فحسب. يلزم نطاق يشير إلى VPS للحصول على شهادة TLS. ويبقى Ubuntu 22.04 أو 24.04 LTS القاعدة الموصى بها.",{"type":38,"title":86,"body":87},"الانطلاق من قالب Nuxt Stack","يجهّز قالب Nuxt Stack في Marketplace الخاص بـ ServOrbit خادم VPS بنظام Ubuntu 24.04 مع Node.js من خطّ LTS الحالي في مستودع NodeSource، وPM2 مثبّتًا على مستوى النظام، وNginx، وPostgreSQL. يعفيك القالب من تثبيت بيئة التشغيل، فتبدأ الخطوات التالية عندئذٍ من تهيئة المشروع.\n\nهذه بيئة تشغيل وليست تطبيقًا بشاشة تسجيل دخول: تدخلها عبر SSH ‏(`ssh root@\u003Cvps-ip>`) لرفع شيفرتك. عند الدخول الأول يعرض Nginx صفحته الافتراضية على المنفذ 80، ويبقى عليك إعداد virtual host لتطبيقك وشهادة Let's Encrypt (فـ Certbot غير مثبّت مسبقًا) ورفع شيفرتك. لا يستمع PostgreSQL إلا محليًا، بمصادقة peer لمستخدم النظام `postgres` ‏(`sudo -u postgres psql`)، وهذا يكفي لربط `DATABASE_URL` بالعنوان `127.0.0.1` دون كشف قاعدة البيانات.",{"type":89,"title":90,"steps":91},"steps","نشر Nuxt خطوة بخطوة",[92,95,98,101,104,107,110],{"title":93,"body":94},"إعداد المشروع لـNode","حدِّد إعداد Nitro المسبق في `nuxt.config.ts`:\n\n```ts\nexport default defineNuxtConfig({\n  nitro: { preset: 'node-server' }\n})\n```\n\nعرِّف أسرارك في `runtimeConfig` من جهة الخادم حصرًا — وليس في `runtimeConfig.public`. ومن جهة VPS، ثبّت Node.js 24 LTS عبر `nvm install 24 && nvm use 24 && nvm alias default 24`، ثم ثبّت PM2 على مستوى النظام: `npm install -g pm2`. في قالب Nuxt Stack يكون Node.js وPM2 مثبّتين مسبقًا.",{"title":96,"body":97},"بناء التطبيق","استنسخ المستودع وثبّت الاعتماديات:\n\n```bash\ngit clone https:\u002F\u002Fgit.yourdomain.com\u002Fyour-org\u002Fyour-app.git \u002Fsrv\u002Fnuxt-app\ncd \u002Fsrv\u002Fnuxt-app\nnpm ci\nnpm run build\n```\n\nينتج Nitro مجلدًا مستقلًا `.output` يحتوي على `server\u002Findex.mjs` والأصول الثابتة في `.output\u002Fpublic`. وهذا المجلد هو كل ما يحتاجه VPS لتقديم التطبيق في الإنتاج — يمكنك أيضًا تجميعه في CI ونقله عبر rsync لتجنب البناء على الخادم.",{"title":99,"body":100},"إنشاء ملف البيئة","أنشئ الملف `\u002Fsrv\u002Fnuxt-app\u002F.env` مع متغيرات وقت التشغيل. كل متغير مسبوق بـ`NUXT_` يُلغي المفتاح المقابل في `runtimeConfig` عند بدء التشغيل:\n\n```bash\nNUXT_MY_SECRET_KEY=production-value\nNITRO_HOST=127.0.0.1\nNITRO_PORT=3000\n```\n\nلا تُدرج هذا الملف في المستودع أبدًا. تأكد من أنه مملوك للمستخدم الذي يُشغِّل PM2 وأنه قابل للقراءة من قِبَله وحده (`chmod 600`).\n\nمع `NITRO_HOST=127.0.0.1` لا يستمع Nitro إلا على الواجهة المحلية: لا يصل إليه سوى Nginx، ولا يُكشف المنفذ 3000 على الإنترنت.",{"title":102,"body":103},"تشغيل خادم Nitro باستخدام PM2","شغّل التطبيق في وضع cluster مع مطالبة Node بتحميل ملف البيئة: لا يقرأ Nuxt ملف `.env` في الإنتاج، وليس في سطر أوامر PM2 خيار مخصّص لذلك.\n\n```bash\npm2 start \u002Fsrv\u002Fnuxt-app\u002F.output\u002Fserver\u002Findex.mjs \\\n  --name nuxt-app -i max \\\n  --node-args=\"--env-file=\u002Fsrv\u002Fnuxt-app\u002F.env\"\npm2 save\npm2 startup\n```\n\nيطلق الخيار `-i max` نسخة لكل vCPU، ووضع cluster هذا هو ما يتيح إعادة التحميل دون انقطاع في الخطوة الأخيرة. يعرض الأمر `pm2 startup` سطرًا للنسخ واللصق لإنشاء خدمة systemd. نفِّذه بصلاحيات المدير. تحقَّق من أن التطبيق يعمل: يجب أن يُظهر `pm2 status` الحالة `online`.",{"title":105,"body":106},"إعداد Nginx كبروكسي عكسي","أنشئ الملف `\u002Fetc\u002Fnginx\u002Fsites-available\u002Fnuxt-app`:\n\n```nginx\nserver {\n    listen 80;\n    server_name yourdomain.com www.yourdomain.com;\n\n    location \u002F_nuxt\u002F {\n        root \u002Fsrv\u002Fnuxt-app\u002F.output\u002Fpublic;\n        expires 1y;\n        add_header Cache-Control \"public, immutable\";\n    }\n\n    location \u002Ffavicon.ico {\n        root \u002Fsrv\u002Fnuxt-app\u002F.output\u002Fpublic;\n    }\n\n    location \u002F {\n        proxy_pass http:\u002F\u002F127.0.0.1:3000;\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection 'upgrade';\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n        proxy_cache_bypass $http_upgrade;\n    }\n}\n```\n\nفعِّل الموقع واختبر الإعداد: `ln -s \u002Fetc\u002Fnginx\u002Fsites-available\u002Fnuxt-app \u002Fetc\u002Fnginx\u002Fsites-enabled\u002F && nginx -t && systemctl reload nginx`.",{"title":108,"body":109},"تفعيل HTTPS باستخدام Let's Encrypt","ثبّت Certbot وإضافة Nginx، ثم أنشئ الشهادة:\n\n```bash\napt install certbot python3-certbot-nginx\ncertbot --nginx -d yourdomain.com -d www.yourdomain.com\n```\n\nيُعدِّل Certbot تلقائيًا كتلة Nginx للاستماع على المنفذ 443 وفرض إعادة التوجيه من HTTP إلى HTTPS. تحقَّق من أن `X-Forwarded-Proto` يُمرَّر بشكل صحيح إلى Nitro — بدونه قد يتصرف `useRequestHeaders()` من جهة الخادم وعمليات إعادة التوجيه القائمة على البروتوكول بشكل خاطئ. يتولى مؤقت systemd الخاص بـCertbot التجديد التلقائي، ويمكن التحقق منه بـ`systemctl status certbot.timer`.",{"title":111,"body":112},"التحديث دون انقطاع الخدمة","للتحديث، يضمن `reload` في PM2 (وليس إعادة التشغيل) استمرارية الخدمة. اجمع الأوامر في سكربت `\u002Fsrv\u002Fnuxt-app\u002Fdeploy.sh`، يوقفه `set -e` عند أول خطأ قبل أيّ إعادة تحميل:\n\n```bash\n#!\u002Fbin\u002Fbash\nset -e\ncd \u002Fsrv\u002Fnuxt-app\ngit pull origin main\nnpm ci\nnpm run build\npm2 reload nuxt-app\n```\n\nاجعله قابلًا للتنفيذ (`chmod +x deploy.sh`) واستدعِه من خطّ CI\u002FCD عبر SSH. في وضع cluster يستبدل PM2 النسخ واحدة تلو الأخرى، فيتسلّم الإصدار الجديد قبل أن يتوقّف القديم. للتراجع، عد إلى الإيداع السابق وأعد البناء والتحميل. إذا جرى البناء في CI، انقل مجلد `.output` فقط عبر rsync وأعد التحميل دون إعادة البناء على الخادم.",{"type":38,"title":114,"body":115},"متغيّرات البيئة: العامة والخاصة وإعادة التحميل","يرتّب Nuxt إعدادات التشغيل على مستويين. المفاتيح الموضوعة تحت `runtimeConfig.public` تُرسَل إلى المتصفّح وتبقى مقروءة من جهة الخادم، مثل عنوان API العام أو معرّف قياس الجمهور. أما باقي مفاتيح `runtimeConfig` فلا تغادر الخادم أبدًا، مثل المفاتيح السرّية وبيانات الوصول إلى قاعدة البيانات.\n\nعند الإقلاع، يحلّ متغيّر البيئة محلّ المفتاح المقابل إن اتّبع اصطلاح `NUXT_\u003CNAME>`، أو `NUXT_PUBLIC_\u003CNAME>` للمفتاح العام: فالمتغيّر `NUXT_PUBLIC_API_BASE` يحلّ محلّ `runtimeConfig.public.apiBase`. أما القيمة المقروءة من مصدر آخر، مثل `process.env.OTHER_VARIABLE` المكتوبة في `nuxt.config.ts`، فلا تُؤخذ إلا أثناء البناء وتبقى مجمّدة في الحزمة.\n\nعمليًا، لا يتطلّب تغيير عنوان API أو مفتاح إعادة البناء: تعدّل ملف `.env` على الخادم ثم تعيد تحميل PM2 ‏(`pm2 reload nuxt-app`). وهكذا يمكن للمجلّد `.output` نفسه أن يخدم بيئة ما قبل الإنتاج والإنتاج بملفّي بيئة مختلفين. الشرط الوحيد أن تحمّل العملية هذا الملف، لأن Nuxt لا يقرأ `.env` بعد بناء التطبيق، ومن هنا الخيار `--env-file` المُمرَّر إلى Node عند الإطلاق مع PM2.",{"type":38,"title":117,"body":118},"تحسين التصيير باستخدام routeRules","إحدى نقاط قوة Nuxt على VPS هي دقة استراتيجيات التصيير لكل صفحة على حدة، دون تغيير البنية التحتية. في `nuxt.config.ts`، تتيح لك `routeRules` مزج SSR وSSG وISR وSWR في نشر Nitro واحد.\n\nيمكن لصفحات المدونة والصفحات القانونية والصفحات الهبوطية أن تُولَّد مسبقًا عند البناء باستخدام `prerender: true`: يقدمها Nitro من القرص دون الحاجة إلى Node. تستفيد الصفحات شبه الديناميكية (قوائم المنتجات ولوحات التحكم العامة) من `swr: 60` للحصول على ذاكرة تخزين مؤقت مدتها دقيقة واحدة تُبطَل في الخلفية. يبقى SSR الكامل للصفحات الشخصية التي تعتمد على الجلسة أو ملف المستخدم.\n\nيُقلل هذا النهج الحِمل على Node دون الحاجة إلى شبكة CDN مدفوعة أو طبقة تخزين مؤقت خارجية — يخزن Nginx ما يُولِّده Nitro مسبقًا.",{"type":54,"title":120,"headers":121,"rows":125},"‏Nitro server مقابل Docker مقابل Vercel\u002FNetlify لاستضافة Nuxt",[122,123,124],"النهج","المزايا","القيود",[126,130,134,138],[127,128,129],"‏Nitro `node-server` + PM2","بسيط وخفيف، إعادة تحميل بدون توقف، تكلفة VPS ثابتة","إشراف يدوي، خادم واحد بدون توفر عالٍ أصلي",[131,132,133],"‏Docker على VPS","عزل، قابلية إعادة الإنتاج، التراجع بالصورة، compose لتطبيقات متعددة","صورة للبناء والتخزين، ذاكرة إضافية لكل حاوية",[135,136,137],"‏Vercel \u002F Netlify","إعداد صفري، CDN عالمي، معاينات لكل PR","حصص الدوال، تكلفة متغيرة، لا تحكم في البنية التحتية",[139,140,141],"‏Kamal (نشر بدون توقف)","ينسّق Docker وkamal-proxy، نشر بأمر واحد (`kamal deploy`)","أداة Ruby (gem أو صورة Docker)، إعداد أولي أطول، مناسب للفرق",{"type":38,"title":143,"body":144},"السجلّات: قراءتها وتدويرها ومقارنتها بسجلّات Nginx","يجمع PM2 مخرجات التطبيق: يتابع الأمر `pm2 logs nuxt-app` التدفّق مباشرة (المخرجات القياسية والأخطاء)، ويعرض `pm2 logs nuxt-app --lines 100` آخر الأسطر. تُكتب الملفات في `~\u002F.pm2\u002Flogs\u002F`، بملف `-out.log` وملف `-error.log` لكل تطبيق، مع رقم النسخة لاحقةً في وضع cluster.\n\nلا تُدوَّر هذه الملفات من تلقاء نفسها. تدوّرها الوحدة pm2-logrotate بعد 10 ميغابايت وتحتفظ افتراضيًا بثلاثين نسخة؛ عدّل هذه العتبات بحسب حجم قرصك:\n\n```bash\npm2 install pm2-logrotate\npm2 set pm2-logrotate:max_size 50M\npm2 set pm2-logrotate:retain 7\n```\n\nحين يتلقّى المتصفّح خطأ 502 أو 504، ابدأ بالنظر من جهة Nginx: يخبرك `\u002Fvar\u002Flog\u002Fnginx\u002Ferror.log` إن كان قد عجز عن الوصول إلى `127.0.0.1:3000` (عملية متوقّفة أو منفذ خاطئ) أو إن كان Nitro قد تأخّر كثيرًا في الردّ.",{"type":38,"title":146,"body":147},"استكشاف الأخطاء: مشكلات الإنتاج الشائعة","**`Error: listen EADDRINUSE: address already in use :::3000`**\nعملية ما تشغل المنفذ 3000 بالفعل. حدِّدها بـ`ss -tlnp | grep 3000` وأوقف نسخة PM2 اليتيمة: `pm2 delete nuxt-app` ثم إعادة تشغيل نظيفة. تجنب تشغيل نسخ متعددة بلا load balancer — استخدم `cluster_mode` في PM2.\n\n**`502 Bad Gateway` في Nginx**\nNitro غير مُشغَّل أو يستمع على منفذ خاطئ. تحقَّق من `pm2 status` وراجع السجلات: `pm2 logs nuxt-app --lines 50`. تحقَّق أيضًا من أن التوجيه `proxy_pass` في Nginx يُشير إلى `http:\u002F\u002F127.0.0.1:3000` (وليس `localhost` الذي قد يُحلَّل إلى IPv6 إذا كانت العملية تستمع على IPv4 فقط).\n\n**`useRuntimeConfig()` تُعيد undefined**\nلا تُقرأ متغيّرات `NUXT_*` إلا عند بدء عملية Nitro: بعد تعديل `.env` أعد التحميل بالأمر `pm2 reload nuxt-app`. تحقّق من أن الملف يُحمَّل فعلًا عبر `--node-args=\"--env-file=…\"` وليس مُصدَّرًا في الصدفة الحالية التي تختفي بانتهاء جلسة SSH. وإن كانت القيمة غائبة في المتصفّح وحده، فيجب تعريف المفتاح تحت `runtimeConfig.public` وأن يبدأ المتغيّر بالبادئة `NUXT_PUBLIC_`.\n\n**مسارات `server\u002Fapi` تُعيد 404 في الإنتاج**\nتحقَّق من أن البناء يتضمن مجلد `server\u002F` في `.output`. إعداد `nitro.preset` الخاطئ (مثلًا `static` بدلًا من `node-server`) يُولِّد موقعًا ثابتًا بلا خادم. أعد البناء بـ`npm run build` بعد التحقق من `nuxt.config.ts`.\n\n**`X-Forwarded-Proto` متجاهَل، حلقة إعادة توجيه**\nإذا كان Nuxt يُعيد التوجيه من HTTP إلى HTTPS في حلقة، فذلك يعني أن middleware إعادة التوجيه يرى `http` رغم HTTPS من جهة العميل. تأكد من أن Nginx يُمرِّر `proxy_set_header X-Forwarded-Proto $scheme` وأن `nuxt.config.ts` لا يفرض إعادة توجيه HTTPS مرتين مع Certbot.",{"type":149,"title":150,"body":151},"tip","المراقبة والمقاييس باستخدام PM2","يتيح PM2 لوحة تحكم زمنية حقيقية بـ`pm2 monit`: المعالج والذاكرة وعمليات إعادة التشغيل وسجلات العمليات. لتطبيق Nuxt تحت حِمل، فعِّل وضع cluster لاستخدام جميع vCPU المتاحة:\n\n```bash\npm2 start .output\u002Fserver\u002Findex.mjs --name nuxt-app -i max\n```\n\nيوزِّع PM2 الطلبات تلقائيًا بين العمال. صدِّر هذه المقاييس إلى Prometheus وGrafana لتتلقّى تنبيهًا عند عمليات إعادة التشغيل غير المتوقعة — وهي إشارة إلى خطأ أو تسريب ذاكرة يجب معالجته قبل أن يؤثر على المستخدمين.",{"type":149,"title":153,"body":154},"التوثيق الرسمي","للإعدادات المتقدّمة وتغييرات الإصدارات، ارجع إلى \u003Ca href=\"https:\u002F\u002Fnuxt.com\u002Fdocs\">التوثيق الرسمي لـ Nuxt\u003C\u002Fa> ‏(routeRules و`runtimeConfig` والوحدات)، وإلى \u003Ca href=\"https:\u002F\u002Fnitro.build\u002Fdeploy\u002Fruntimes\u002Fnode\">صفحة Node.js في توثيق Nitro\u003C\u002Fa> لمعرفة المتغيّرين `NITRO_PORT` و`NITRO_HOST`، وإلى \u003Ca href=\"https:\u002F\u002Fpm2.keymetrics.io\u002Fdocs\u002Fusage\u002Fcluster-mode\u002F\">توثيق وضع cluster في PM2\u003C\u002Fa>. يغطّي هذا الدليل الإطلاق على VPS، ويبقى توثيق الناشر المرجع في الضبط الدقيق.","انشر تطبيق Nuxt باستقلالية كاملة","يوفّر VPS السحابي من ServOrbit قالبًا مع Node.js وPM2 وNginx وشهادات SSL تلقائية، مثاليًا لاستضافة تطبيقات Nuxt 3 مع SSR ومسارات الخادم.","انشر VPS الخاص بـNuxt","\u002Fvps-cloud",[160,177,194],{"id":161,"slug":162,"slugs":163,"title":167,"excerpt":168,"readTime":23,"views":18,"isPinned":19,"noindex":19,"publishedAt":169,"updatedAt":170,"category":171,"categories":172,"featuredImage":30,"bgImage":31,"posterImage":174,"relatedSolution":175},5,"نشر-laravel-على-خادم-vps-دليل-الإنتاج",{"fr":164,"en":165,"ar":162,"es":166},"deployer-laravel-vps","deploying-laravel-on-a-vps-a-production-guide","desplegar-laravel-en-un-vps","نشر Laravel على خادم VPS: دليل الإنتاج","انقل Laravel إلى بيئة الإنتاج على خادم VPS: PHP وworkers والذاكرة المؤقتة وقاعدة البيانات وreverse proxy وHTTPS مُهيّأة بشكل نظيف.","2026-02-09T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[173],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fdeployer-laravel-vps-poster.svg",{"categorySlug":27,"appSlug":176},"laravel-stack",{"id":178,"slug":179,"slugs":180,"title":184,"excerpt":185,"readTime":186,"views":18,"isPinned":19,"noindex":19,"publishedAt":187,"updatedAt":21,"category":188,"categories":189,"featuredImage":30,"bgImage":31,"posterImage":191,"relatedSolution":192},43,"نشر-تطبيق-nodejs-على-vps",{"fr":181,"en":182,"ar":179,"es":183},"deployer-nodejs-vps","deploy-a-nodejs-application-on-a-vps","desplegar-una-aplicacion-nodejs-en-un-vps","نشر تطبيق Node.js على VPS","انشر تطبيق Node.js في بيئة الإنتاج على VPS: PM2 وبروكسي عكسي Nginx وشهادة SSL من Let's Encrypt وبدء تشغيل تلقائي عند الإقلاع.",8,"2026-05-08T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[190],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fdeployer-nodejs-vps-poster.svg",{"categorySlug":24,"appSlug":193},"nodejs-stack",{"id":195,"slug":196,"slugs":197,"title":201,"excerpt":202,"readTime":203,"views":204,"isPinned":19,"noindex":19,"publishedAt":205,"updatedAt":206,"category":207,"categories":208,"featuredImage":30,"bgImage":31,"posterImage":210,"relatedSolution":211},44,"نشر-تطبيق-django-على-vps",{"fr":198,"en":199,"ar":196,"es":200},"deployer-django-vps","deploy-a-django-application-on-a-vps","desplegar-una-aplicacion-django-en-un-vps","نشر تطبيق Django على VPS","انشر Django على VPS: Gunicorn وNginx وPostgreSQL وDocker وSSL. دليل كامل لمطوّري Python الراغبين في الاستضافة الذاتية.",3,7,"2026-05-07T00:00:00+00:00","2026-11-04T16:30:25+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[209],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fdeployer-django-vps-poster.svg",{"categorySlug":24,"appSlug":212},"django",true,1794270313222]