كيفية استخدام القارورة أو الزجاجة مع Nginx؟
ترك رسالة
مرحبًا يا من هناك! إذا كنت مهتمًا بتطوير الويب، فمن المحتمل أنك سمعت عن Flask and Bottle. تعد أطر الويب Python خفيفة الوزن مفيدة جدًا لإنشاء تطبيقات الويب. وعندما يتعلق الأمر بنشرها، فإن Nginx هو خادم الويب الأفضل اختيارًا. باعتباري موردًا للقارورة والزجاجة، أنا هنا لأرشدك إلى كيفية استخدام القارورة أو الزجاجة مع Nginx.
لماذا تجمع بين القارورة/الزجاجة مع Nginx؟
أولاً، دعنا نتحدث عن سبب رغبتك في استخدام Flask أو Bottle مع Nginx. تعتبر Flask وBottle رائعة لبناء تطبيقات الويب بسرعة، لكنهما غير مصممتين للتعامل مع عدد كبير من الطلبات المتزامنة بمفردهما. إنها أشبه بمحركات بسيطة تعمل على تشغيل وظائف تطبيق الويب الخاص بك.
Nginx، من ناحية أخرى، هو خادم ويب عالي الأداء. يمكنه التعامل مع الكثير من الاتصالات المتزامنة بكفاءة. باستخدام Nginx أمام تطبيق Flask أو Bottle، يمكنك إلغاء تحميل المهام مثل تقديم الملفات الثابتة، ومعالجة طلبات HTTP، وموازنة التحميل. بهذه الطريقة، يمكن لتطبيق Flask أو Bottle الخاص بك التركيز على ما يفعله بشكل أفضل: معالجة منطق الأعمال.
إعداد قارورة أو زجاجة
قبل أن نتعمق في التكامل مع Nginx، دعونا نتأكد من تشغيل تطبيق Flask أو Bottle.


إعداد قارورة
إذا كنت تستخدم Flask، فتأكد أولاً من تثبيت Python وFlask. يمكنك إنشاء تطبيق Flask بسيط مثل هذا:
من القارورة استيراد Flask app = Flask(__name__) @app.route('/') def hello_world(): return "Hello, World!" إذا __name__ == '__main__': app.run(host='0.0.0.0', port=5000)
احفظ هذا الرمز في ملف، على سبيل المثالapp.py. ثم قم بتشغيله باستخدامبيثون app.py. سيبدأ تشغيل تطبيق Flask الخاص بكhttp://0.0.0.0:5000.
إعداد الزجاجة
بالنسبة للزجاجة، فإن العملية مماثلة. قم بتثبيت الزجاجة إذا لم تكن قد قمت بذلك بالفعل. إليك تطبيق زجاجة بسيط:
من مسار استيراد الزجاجة، قم بتشغيل @route('/') def Index(): return 'Hello from Bottle!' تشغيل (المضيف = '0.0.0.0'، المنفذ = 8080)
احفظ هذا باسمBottle_app.pyوتشغيله معبيثون Bottle_app.py. سيكون تطبيق Bottle الخاص بك متاحًا علىhttp://0.0.0.0:8080.
تثبيت وتكوين Nginx
الآن، لنبدأ تشغيل Nginx. تختلف عملية التثبيت حسب نظام التشغيل الخاص بك. على أوبونتو، يمكنك استخدام الأمر التالي:
Sudo apt-get update Sudo apt-get install nginx
بعد التثبيت، ابدأ تشغيل Nginx باستخدامسودو systemctl بدء nginx. يمكنك التحقق من حالته معحالة سودو systemctl nginx.
ضبط Nginx للقارورة أو الزجاجة
يستخدم Nginx ملفات التكوين لتحديد كيفية التعامل مع الطلبات. ستحتاج إلى إنشاء ملف تكوين جديد لتطبيق Flask أو Bottle الخاص بك.
قم بإنشاء ملف جديد في/etc/nginx/sites - متاح/دليل. على سبيل المثال، إذا كنت تستخدم Flask، فيمكنك إنشاء ملف باسمflask_app.conf:
الخادم {استمع 80؛ اسم الخادم your_domain_or_ip; الموقع / { proxy_pass http://127.0.0.1:5000; proxy_set_header المضيف $host; proxy_set_header X - حقيقي - IP $remote_addr; proxy_set_header X - مُعاد توجيهه - مقابل $proxy_add_x_forwarded_for؛ } }
إذا كنت تستخدم Bottle، قم بتغييرproxy_passلhttp://127.0.0.1:8080واحفظ الملف باسمBottle_app.conf.
إنشاء رابط رمزي لالمواقع - ممكّنةدليل:
Sudo ln -s /etc/nginx/sites -available/flask_app.conf /etc/nginx/sites -enable/
أو للزجاجة:
Sudo ln -s /etc/nginx/sites -available/bottle_app.conf /etc/nginx/sites -enable/
اختبر تكوين Nginx باستخدامسودو nginx -t. إذا لم تكن هناك أخطاء، أعد تحميل Nginx باستخدامسودو systemctl إعادة تحميل nginx.
خدمة الملفات الثابتة
إحدى الأشياء الرائعة في Nginx هي قدرته على خدمة الملفات الثابتة بكفاءة. في تطبيق Flask أو Bottle، قد يكون لديك أصول ثابتة مثل CSS أو JavaScript أو الصور.
في ملف تكوين Nginx، أضف ملفًا جديدًاموقعكتلة للملفات الثابتة. على سبيل المثال:
الموقع / ثابت { الاسم المستعار /path/to/your/static/files; }
هذا يخبر Nginx بأن يخدم الملفات من الدليل المحدد عندما يبدأ الطلب/static.
موازنة التحميل
إذا كان لديك عدة مثيلات لتطبيق Flask أو Bottle قيد التشغيل، فيمكنك استخدام Nginx لموازنة التحميل. إليك كيفية تكوينه:
flask_apps المنبع { الخادم 127.0.0.1:5000؛ الخادم 127.0.0.1:5001؛ } الخادم { الاستماع 80؛ اسم الخادم your_domain_or_ip; الموقع / { proxy_pass http://flask_apps; proxy_set_header المضيف $host; proxy_set_header X - حقيقي - IP $remote_addr; proxy_set_header X - مُعاد توجيهه - مقابل $proxy_add_x_forwarded_for؛ } }
يقوم هذا التكوين بتوزيع الطلبات الواردة بين مثيلين لتطبيق Flask الخاص بك الذي يعمل على المنفذين 5000 و5001.
باستخدام وكيل عكسي
يعمل Nginx كوكيل عكسي في هذا الإعداد. يوجد وكيل عكسي أمام تطبيق Flask أو Bottle الخاص بك ويقوم بإعادة توجيه الطلبات إليه. كما أنه يساعد في إخفاء البنية الداخلية لتطبيقك عن العالم الخارجي.
الproxy_passالتوجيه في تكوين Nginx هو ما يجعل هذا يحدث. يأخذ طلبات HTTP الواردة ويرسلها إلى تطبيق Flask أو Bottle المناسب الذي يعمل على الجهاز المحلي.
المراقبة واستكشاف الأخطاء وإصلاحها
بمجرد الانتهاء من إعداد كل شيء، من المهم مراقبة تطبيق Flask/Bottle وNginx. يمكنك استخدام أدوات مثلذيللعرض سجلات الوصول والأخطاء لـ Nginx:
ذيل سودو -f /var/log/nginx/access.log ذيل سودو -f /var/log/nginx/error.log
إذا واجهت مشكلات، فيمكن أن توفر لك هذه السجلات معلومات قيمة حول الأخطاء التي تحدث. على سبيل المثال، إذا رأيت502 مدخل غير صالحأخطاء، فقد يعني ذلك أن تطبيق Flask أو Bottle لا يعمل بشكل صحيح.
عروض منتجاتنا
باعتبارنا موردًا للقوارير والزجاجات، فإننا لا نتوقف عند تقديم التوجيه فحسب. نحن نقدم أيضًا منتجات عالية الجودة تتعلق بالنظام البيئي للقارورة والزجاجة. على سبيل المثال، إذا كنت تبحث عن طريقة رائعة للحفاظ على قهوتك دافئة أثناء انشغالك بالبرمجة، فاطلع على موقعناوعاء قهوة معزول من الفولاذ المقاوم للصدأ. إنها مثالية لجلسات البرمجة الطويلة تلك.
تواصل معنا للمشتريات
إذا كنت مهتمًا بحلول Flask and Bottle الخاصة بنا، أو إذا كانت لديك أي أسئلة حول استخدامها مع Nginx، فيسعدنا أن نسمع منك. سواء كنت شركة ناشئة صغيرة أو مؤسسة كبيرة، يمكننا تقديم الدعم والمنتجات التي تحتاجها. تواصل معنا لبدء مناقشة المشتريات. نحن هنا لمساعدتك في تحقيق أقصى استفادة من مشاريع تطوير الويب الخاصة بك.
مراجع
- توثيق القارورة
- توثيق الزجاجة
- وثائق نجينكس






