نشر تطبيق Java على VPS: دليل خطوة بخطوة من الألف إلى الياء

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

نشر تطبيق Java على VPS: دليل خطوة بخطوة من الألف إلى الياء



تطوير تطبيق Java هو نصف المهمة فقط. النصف الثاني، الذي لا يقل أهمية، هو نشره على الخادم. يواجه العديد من المطورين صعوبات عند نقل الكود من جهازهم المحلي إلى VPS بعيد. في هذه المقالة، سنشرح العملية الكاملة لنشر تطبيق Java (باستخدام مثال Spring Boot) على خادم خاص افتراضي (VPS) يعمل بنظام التشغيل Ubuntu 22.04. ستتعلم كيفية إعداد البيئة، بناء المشروع، تشغيله كخدمة، وضمان الوصول الآمن عبر Nginx وSSL.



1. إعداد VPS وتثبيت البرامج اللازمة



قبل تحميل الكود، يجب تجهيز الخادم. سنستخدم Ubuntu 22.04 LTS. اتصل بالخادم عبر SSH:



ssh root@عنوان-ip-الخاص-بك


قم بتحديث مدير الحزم وتثبيت الأدوات الأساسية:



apt update && apt upgrade -yapt install curl git -y


الآن سنقوم بتثبيت OpenJDK 17 (الإصدار الموصى به لمعظم المشاريع الحديثة):



apt install openjdk-17-jdk -y


تحقق من التثبيت:



java -version


يجب أن ترى شيئًا مثل:



openjdk version "17.0.9" 2023-10-17


بعد ذلك، قم بتثبيت Maven لبناء المشروع (إذا كنت تستخدم Gradle، استبدل الأوامر وفقًا لذلك):



apt install maven -ymvn -version


بهذا يكتمل إعداد البيئة الأساسية.



2. بناء وتحميل تطبيق Java على الخادم



قم ببناء تطبيق Java الخاص بك محليًا. انتقل إلى المجلد الجذر للمشروع ونفذ:



mvn clean package -DskipTests


بعد البناء الناجح، سيظهر ملف JAR في مجلد target (على سبيل المثال، myapp-0.0.1-SNAPSHOT.jar). الآن يجب تحميله إلى الخادم. استخدم scp (يتم تنفيذه من جهازك المحلي):



scp target/myapp-0.0.1-SNAPSHOT.jar root@عنوان-ip-الخاص-بك:/opt/myapp/


على الخادم، أنشئ دليلاً للتطبيق وانقل الملف:



mkdir -p /opt/myappmv myapp-0.0.1-SNAPSHOT.jar /opt/myapp/myapp.jar


تحقق من وجود ملف JAR وقم بتشغيله يدويًا للاختبار:



cd /opt/myappjava -jar myapp.jar


إذا تم تشغيل التطبيق بدون أخطاء، انتقل إلى الخطوة التالية.



3. إعداد systemd للتشغيل التلقائي



لكي يتم تشغيل التطبيق تلقائيًا عند بدء تشغيل النظام وإعادة تشغيله في حالة حدوث عطل، سنقوم بإنشاء خدمة systemd.



أنشئ ملف الخدمة:



nano /etc/systemd/system/myapp.service


ألصق المحتوى التالي (استبدل youruser باسم المستخدم الذي سيعمل تحته التطبيق، أو اترك root):



[Unit]Description=My Java Spring Boot ApplicationAfter=network.target

[Service]User=rootWorkingDirectory=/opt/myappExecStart=/usr/bin/java -jar /opt/myapp/myapp.jarSuccessExitStatus=143Restart=alwaysRestartSec=10

[Install]WantedBy=multi-user.target


شرح المعاملات:

  • After=network.target — تبدأ الخدمة بعد تشغيل الشبكة.
  • Restart=always — إعادة التشغيل التلقائي عند التعطل.
  • RestartSec=10 — توقف لمدة 10 ثوانٍ قبل إعادة التشغيل.
  • SuccessExitStatus=143 — معالجة صحيحة لإشارة الإيقاف.


الآن قم بتفعيل الخدمة وتشغيلها:



systemctl daemon-reloadsystemctl enable myappsystemctl start myapp


تحقق من الحالة:



systemctl status myapp


يجب أن ترى Active: active (running). الآن سيتم تشغيل تطبيقك تلقائيًا

المدونات

توصيات الكتب