الوصول إلى خادم FastAPI على EC2 Ubuntu 24.04 باستخدام HTTPS
عند تطوير تطبيقات الويب، قد تواجه بعض التحديات اللوجستية، وخاصة عند دمج خلفيات قابلة للتفاعل عبر بروتوكولات مختلفة. هذا ما يواجهه الكثيرون عند محاولة الوصول إلى واجهات برمجة التطبيقات (APIs) المُبنية باستخدام FastAPI على خوادم مستضافة باستخدام AWS EC2، خاصة عند التعامل مع بروتوكولات HTTP وHTTPS. في هذا المقال، سنستعرض كيفية الوصول إلى خلفية FastAPI على خادم Ubuntu 24.04 مستضاف على AWS EC2 عبر بروتوكول HTTPS.
لماذا تستخدم FastAPI على AWS EC2؟
FastAPI هو إطار عمل حديث لتطوير واجهات برمجة التطبيقات في Python، ويتميز بسرعة الأداء وسهولة الاستخدام. عند استخدامه على خادم Amazon EC2، يمنحك القدرة على استضافة تطبيقاتك بشكل مرن وآمن. لكن، قد تظهر بعض العقبات مثل تلك التي تصادفها عند محاولة دمج تطبيقاتك مع مواقع WordPress.
التحدي: الوصول إلى الخلفية عبر بروتوكول HTTPS
عند تشغيل تطبيق FastAPI عبر الأمر uvicorn app:app --host 0.0.0.0 --port 8000
، يتم استضافته على المنفذ 8000. ومع ذلك، تظهر المشكلة عندما تحاول الوصول إلى هذا التطبيق من موقع WordPress الذي غالباً ما يعمل عبر بروتوكول HTTP. هذه الفجوة في البروتوكولات قد تؤدي إلى منع الوصول. الحل الأمثل لذلك هو استخدام بروتوكول HTTPS.
إعداد Nginx كخادم وسيط
إحدى الحلول الشائعة لتحقيق هذا هو استخدام Nginx كخادم وسطي Reverse Proxy لتوجيه الطلبات من HTTP إلى HTTPS. في حالة عدم نجاح تثبيت Nginx كما حدث في المثال الذي تمت الإشارة إليه، يمكنك اتباع الخطوات التالية:
-
تثبيت Nginx: تأكد من تحديث حزمة النظام لديك باستخدام الأمر:
sudo apt update sudo apt install nginx
-
تكوين Nginx: بعد نجاح التثبيت، يجب عليك إعداد ملف التكوين لـ Nginx لتوجيه الطلبات. يمكنك إنشاء ملف جديد في
/etc/nginx/sites-available/default
وإضافة الإعدادات اللازمة لتوجيه الطلبات إلى FastAPI. - التحقق من الحالة: بعد التكوين، تحقق من حالة Nginx باستخدام الأوامر المذكورة للحصول على تفاصيل حول أي أخطاء قد تحدث:
sudo systemctl status nginx.service journalctl -xeu nginx.service
التحويل إلى HTTPS
لتحقيق الاتصال الآمن، ينبغي لك الحصول على شهادة SSL. يمكنك استخدام أدوات مثل Certbot
للحصول على شهادات مجانية من Let’s Encrypt. يمكنك اتباع الخطوات التالية:
-
تثبيت Certbot:
sudo apt install certbot python3-certbot-nginx
-
الحصول على الشهادة:
sudo certbot --nginx
- تجديد الشهادات تلقائيًا: تأكد من ضبط الآلية لتجديد الشهادات تلقائياً لكي لا تتوقف الخدمة.
التكامل مع WordPress
بعد الانتهاء من إعداد Nginx والتأكد من أن لديك شهادة SSL صالحة، يجب أن يكون بالإمكان الوصول إلى واجهة برمجة التطبيقات لجهاز FastAPI من موقع WordPress. إذا كان لديك كود مضمن باستخدام HTML وCSS وJavaScript، تأكد من استخدام HTTPS عند استدعاء واجهة برمجة التطبيقات.
نقاط يجب مراعاتها
- تأكد من أن عنوان URL الخاص بالخلفية يتم توجيهه بشكل صحيح.
- تحقق من جدار الحماية لديك في AWS EC2 للسماح بحركة المرور على المنفذ 443 (HTTPS).
الخاتمة
باستخدام الطرق المذكورة أعلاه، يمكنك الوصول إلى خلفية FastAPI على خادم Ubuntu 24.04 الخاص بك على AWS EC2 باستخدام بروتوكول HTTPS. تكامل الخدمات المختلفة يعتبر أحد المفاتيح لنجاح تطبيقات الويب. تأكد من اتخاذ كافة التدابير اللازمة لحماية تطبيقك وضمان عمله بسلاسة. إذا كنت بحاجة إلى دعم إضافي، لا تتردد في البحث في المصادر والمجتمعات التقنية التي يمكن أن توفر لك العون والمساعدة.