كيفية إنشاء خادم ويب بسيط باستخدام darkhttpd


Darkhttpd هو برنامج خفي لخادم الويب خفيف الوزن وثنائي لنظام التشغيل Linux. فهو يوفر طريقة بسيطة “بدون تكوين” لنشر مواقع الويب بأسرع ما يمكن على الخادم الخاص بك. نعرض لك هنا كيفية تثبيت darkhttpd على Ubuntu Linux، وكيفية مقارنته بخوادم الويب الشائعة، ونرشدك خلال عملية إنشاء موقع الويب الأول الخاص بك.

Darkhttpd مقابل أباتشي مقابل Nginx

Darkhttpd ليس خادم الويب الوحيد الذي يمكنك تثبيته على جهاز Linux الخاص بك. هناك Apache وNginx وCaddy وLighttpd وغيرها الكثير. في هذا القسم، سنقوم بمقارنة darkhttpd مع Apache وNginx ونرى كيفية أدائه.

فيما يتعلق بسهولة الاستخدام، فإن darkhttpd يتفوق على كل من Apache وNginx تمامًا. يركز Darkhttpd على حفظ كل شيء في برنامج واحد. وهذا يعني أنه يمكنك مشاركة موقع الويب الخاص بك دون القلق بشأن تكوينه وخدمة init الخاصة بنظامك.

محطة تعرض مخرجات المساعدة لـ darkhttpd.

فيما يتعلق بالأمان، يستخدم darkhttpd جذرًا لملفاته. كما أن لديها مهلات تلقائية للاتصالات الخاملة والتسجيل الأساسي. هذا بعيد كل البعد مقارنة بـ Apache و Nginx. يحتوي كلاهما على مرشحات وخيارات قوية لتحديد المعدل لضبط رؤوس HTTP على مواقعهما.

كما أن بساطة Darkhttpd تجعلها غير مرنة لتلبية متطلبات المستخدم المخصصة. صممه مطورو البرنامج كطريقة سريعة لخدمة محتوى الويب الثابت. وهذا يعني أنه بالمقارنة مع Apache وNginx، فإن darkhttpd لا يمكنه تشغيل نصوص CGI أو العمل كوكيل عكسي لتطبيقاتك.

محطة تعرض نموذجًا لتكوين الوكيل العكسي لـ Nginx.
فئة darkhttpd أباتشي نجينكس
سهولة الاستعمال لا يتطلب أي تكوين إضافي لاستضافة مواقع الويب. يتطلب كلاً من النظام والتكوين الخاص بالموقع للعمل. يتطلب التكوين الخاص بالموقع للعمل.
الأمن الشامل يأتي مع ميزات chroot والتسجيل الأساسية. يأتي مزودًا بمحددات للمعدلات ورؤوس HTTP التي تركز على الأمان. يأتي مزودًا بمحددات للمعدلات ورؤوس HTTP التي تركز على الأمان.
دعم طبقة المقابس الآمنة لا يوجد دعم SSL مدمج. يأتي مع “mod_ssl” لدعم SSL. يأتي مع دعم SSL مدمج.
مرونة التطبيق يمكن أن تعمل فقط مع محتوى الويب الثابت. يمكن أن تعمل مع محتوى الويب الثابت والديناميكي. يمكن أن يعمل كخادم ويب وموازن تحميل ووكيل عكسي.

جيد ان تعلم: تعرف على كيفية تشفير البيانات على الإنترنت عن طريق إنشاء شهادات SSL موقعة ذاتيًا باستخدام OpenSSL.

تحضير النظام الخاص بك لـ darkhttpd

ملحوظة: تم تنفيذ هذا البرنامج التعليمي على Ubuntu 24.04 VPS مع ذاكرة وصول عشوائي (RAM) لا تقل عن 512 ميجابايت. ستعمل التعليمات في معظم توزيعات Linux أيضًا.

الخطوة الأولى لإنشاء موقع ويب باستخدام darkhttpd في Ubuntu Linux هي الحصول على تبعيات Docker وDocker Compose.

ملحوظة: سيقوم ما يلي بتثبيت Docker للأنظمة المستندة إلى Ubuntu. إذا كنت قادمًا من توزيعة مختلفة، فاطلع على دليلنا العام لتثبيت Docker في Linux.

ابدأ بتنزيل مفتاح التوقيع لمشروع Docker:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

استخدم محرر النصوص المفضل لديك لإنشاء ملف مستودع جديد:

sudo nano /etc/apt/sources.list.d/docker.list

الصق السطر التالي من التعليمات البرمجية داخل ملف المستودع الخاص بك:

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu noble stable

أعد تحميل مستودعات حزم جهازك وقم بتحديث النظام بالكامل:

sudo apt update && sudo apt upgrade

قم بتثبيت Docker ومكوّن Compose الإضافي وGit باستخدام apt:

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin git
محطة توضح عملية تثبيت Docker ومكوناته الإضافية وGit.

تثبيت وتشغيل darkhttpd

انتقل إلى الدليل الرئيسي لديك، ثم اسحب أحدث إصدار من darkhttpd إلى نظامك:

cd ~ && git clone https://github.com/emikulic/darkhttpd.git

انتقل إلى الجزء الداخلي من Git repo، ثم قم بإنشاء ملف Docker Compose جديد باستخدام محرر النصوص المفضل لديك:

cd darkhttpd && nano ./docker-compose.yml

الصق كتلة التعليمات البرمجية التالية داخل ملف Compose الخاص بك:

services:
  darkhttpd:
    container_name: darkhttpd-website
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - "./html:/var/www/htdocs:ro"
    ports:
      - "8080:80"

احفظ ملف Compose الجديد، ثم قم بتشغيل الأمر التالي لإنشاء حاوية darkhttpd Docker وتشغيلها:

sudo docker compose up -d

قم بإنشاء مجلد “html” داخل مستودع darkhttpd Linux، ثم انسخ ملفات موقع الويب الثابتة إليه:

mkdir ./html/
cp -rv ~/my-website ./html/

تأكد من أن darkhttpd يعمل بشكل صحيح عن طريق إدراج الحاويات المتوفرة في النظام:

محطة توضح حاوية darkhttpd Docker التي تعمل في النظام.

في ملحوظة جانبية: تعرف على كيفية نقل حاويات Docker الموجودة لديك إلى مضيف نظام جديد.

تشغيل darkhttpd عبر SSL باستخدام Stunnel

في هذه المرحلة، لديك الآن خادم darkhttpd قيد التشغيل على المنفذ 8080. ومع ذلك، للوصول إلى هذا عبر الإنترنت، تحتاج أولاً إلى تغليفه في SSL من خلال وكيل عكسي.

للبدء، قم بإنشاء سجل DNS “A” جديد لنطاقك مشيرًا إلى عنوان IPv4 الخاص بـ darkhttpd. في حالتي، سأوجه عنوان IPv4 الخاص بجهازي إلى السجل: “web.myvpsserver.top”.

قم بإحضار وتثبيت Stunnel والحزمة المفاجئة “الأساسية” وCertbot على جهازك:

sudo apt install stunnel4
sudo snap install core && sudo snap install certbot --classic

قم بتسجيل مثيل darkhttpd الخاص بك في Electronic Frontier Foundation:

sudo certbot register --agree-tos -m YOUR-EMAIL@ADDRESS.HERE

قم بإنشاء شهادة SSL عارية لاسم المجال الخاص بك:

sudo certbot certonly --standalone -d SUBDOMAIN.YOUR-DOMAIN.ROOT
محطة تعرض عملية إنشاء شهادة SSL في LetsEncrypt.

قم بإنشاء ملف تكوين جديد للوكيل العكسي Stunnel الخاص بك:

sudo nano /etc/stunnel/stunnel.conf

الصق كتلة التعليمات البرمجية التالية داخل ملف التكوين الجديد الخاص بك:

output       = /var/log/stunnel4/stunnel.log
cert         = /etc/letsencrypt/live/SUBDOMAIN.YOUR-ROOT.DOMAIN/fullchain.pem
key          = /etc/letsencrypt/live/SUBDOMAIN.YOUR-ROOT.DOMAIN/privkey.pem
 
[https]
client       = no
accept       = 443
connect      = 8080

احفظ ملف التكوين الجديد، ثم قم بتشغيل الأمر التالي لبدء الوكيل العكسي:

sudo systemctl start stunnel4.service
محطة توضح الحالة الحالية لخدمة Stunnel في النظام.

تأكد من أن موقع الويب الثابت الخاص بك يعمل الآن بشكل صحيح عن طريق فتح المجال الفرعي الخاص بك على متصفح الويب.

لقطة شاشة توضح نموذج موقع الويب الذي يعمل على darkhttpd باستخدام SSL.

تعد استضافة موقع الويب البسيط الخاص بك باستخدام darkhttpd مجرد خطوة أولى في استكشاف العالم الرائع لخدمات الويب ذاتية الاستضافة. تعرف على كيفية إنشاء خلاصات RSS لوسائل التواصل الاجتماعي الخاصة بك باستخدام RSS-Bridge.

حقوق الصورة: إيليا بافلوف عبر Unsplash. جميع التعديلات ولقطات الشاشة بواسطة Ramces Red.

اشترك في نشرتنا الإخبارية!

يتم تسليم أحدث البرامج التعليمية لدينا مباشرة إلى صندوق البريد الوارد الخاص بك

رمسيس الأحمر

رمسيس كاتب في مجال التكنولوجيا عاش مع أجهزة الكمبيوتر طوال حياته. قارئ غزير الإنتاج وطالب في الأنثروبولوجيا، وهو شخصية غريبة الأطوار تكتب مقالات عن Linux وأي شيء لا شيء.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى