نشر تطبيق Java على VPS: دليل خطوة بخطوة

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

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

ابدأ الدورة

مقدمة

تطوير تطبيق Java هو نصف المهمة فقط. النصف الثاني، الذي لا يقل أهمية، هو النشر الصحيح على خادم الإنتاج. يواجه العديد من المطورين صعوبات عند نقل التطبيق من الجهاز المحلي إلى VPS: إعداد البيئة، البناء، التشغيل في الخلفية، ضمان الأمان. في هذه المقالة، سنشرح العملية الكاملة لنشر تطبيق Java على VPS (Virtual Private Server) — من شراء الخادم إلى إعداد HTTPS. جميع الخطوات ستكون مصحوبة بأمثلة من الكود والتكوينات.

سنستخدم Ubuntu 22.04 LTS كنظام تشغيل لـ VPS، وكمثال لتطبيق Java — تطبيق Spring Boot REST بسيط، معبأ في ملف JAR. إذا كنت تستخدم إطار عمل آخر (Jakarta EE, Micronaut, Quarkus)، فستبقى المبادئ العامة كما هي.



1. إعداد VPS وتثبيت Java

1.1. الاتصال بالخادم

بعد شراء VPS، ستحصل على عنوان IP، واسم مستخدم (عادةً root) وكلمة مرور أو مفتاح SSH. اتصل بالخادم عبر الطرفية:

ssh root@your-server-ip

إذا كنت تستخدم مفتاح SSH، حدد المسار إليه:

ssh -i /path/to/private_key root@your-server-ip


1.2. تحديث النظام وتثبيت Java

أولاً، سنقوم بتحديث مدير الحزم وتثبيت Java Development Kit (JDK). بالنسبة لمعظم تطبيقات Java الحديثة، يكفي OpenJDK 17 أو 21:

apt update && apt upgrade -yapt install openjdk-17-jdk -y

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

java -version

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

openjdk version "17.0.10" 2024-01-16 LTSOpenJDK Runtime Environment (build 17.0.10+7-Ubuntu-122.04.1)OpenJDK 64-Bit Server VM (build 17.0.10+7-Ubuntu-122.04.1, mixed mode, sharing)


1.3. إعداد متغيرات البيئة (اختياري)

إذا كان تطبيقك يتطلب متغيرات محددة (مثل JAVA_HOME)، أضفها إلى ملف ~/.bashrc أو /etc/environment:

echo "export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" >> ~/.bashrcsource ~/.bashrc


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

2.1. بناء ملف JAR/WAR على الجهاز المحلي

لنفترض أن لديك مشروع Maven. قم بالبناء:

mvn clean package -DskipTests

نتيجة لذلك، في مجلد target/ سيظهر ملف myapp-0.0.1-SNAPSHOT.jar (أو .war لتطبيقات الويب).



2.2. تحميل ملف JAR إلى VPS

استخدم scp لنسخ الملف إلى الخادم:

scp target/myapp-0.0.1-SNAPSHOT.jar root@your-server-ip:/opt/myapp/

أنشئ دليلاً للتطبيق على الخادم إذا لم يكن موجودًا:

mkdir -p /opt/myapp


2.3. التحقق من الهيكل على الخادم

بعد التحميل، تحقق من وجود الملف:

ls -la /opt/myapp/

يجب أن ترى myapp-0.0.1-SNAPSHOT.jar.



3. إعداد تشغيل التطبيق (systemd + Nginx)

3.1. تشغيل ملف JAR يدويًا (اختباري)

قبل إعداد التشغيل المستمر، تأكد من أن التطبيق يبدأ بشكل صحيح:

java -jar /opt/myapp/myapp-0.0.1-SNAPSHOT.jar --server.port=8080

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



3.2. إنشاء خدمة systemd

يتيح لك Systemd تشغيل تطبيق Java كخدمة خلفية (daemon) وإعادة تشغيله تلقائيًا عند تعطله أو إعادة تشغيل الخادم.

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

nano /etc/systemd/system/myapp.service

ألصق التكوين التالي:

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

[Service]Type=simpleUser=rootWorkingDirectory=/opt/myappExecStart=/usr/bin/java -jar /opt/myapp/myapp-0.0.1-SNAPSHOT.j

المدونات

توصيات الكتب