همه

وب سرور caddy چیست؟ + آشنایی با مراحل نصب سرور کدی

وب سرور caddy چیست؟ چگونه می‌توان به ساده‌ترین شکل به نصب کدی سرور اقدام کرد؟ در ادامه ما با پاسخ به تمامی این سوالات، به شما آموزش می‌دهیم که با نصب این برنامه از ویژگی‌های و امتیازات آن استفاده نمایید؛ با ما همراه باشید. 

در همین ابتدا لازم می‌دانیم عنوان کنیم که اگر قصد خرید سرور مجازی ایران را دارید به سایت ابر آراز مراجعه کرده و لذت استفاده از یک سرور امن و به صرفه را تجربه کنید.

وب سرور caddy چیست؟

وب سرور کدی به دلیل ویژگی‌هایی که دارد، می‌تواند گزینه‌ی مناسبی برای میزبانی سایت‌ها باشد؛ از جمله ویژگی‌ها و امتیازات کدی سرور می‌توان به مواردی که در ادامه عنوان می‌کنیم، اشاره کرد:

  • دریافت و مدیریت خودکار گواهی‌های TLS از Let’s Encrypt جهت فعال کردن HTTPS
  • پشتیبانی از HTTP/2

نکته‌ای که لازم می‌دانیم در این نقطه به آن اشاره کنیم این است که در حال حاضر HTTPS به یک امر الزامی برای هر سیستم عاملی تبدیل شده است. بدین صورت که بدون استفاده از آن، در صورت ورود کاربر به وب سایت، موتورهای جستجو مانند کروم و فایرفاکس  هشدار می‌دهند که وب‌سایت موردنظر ایمن نیست.

به طورکلی در دنیای امروزی وب و اینترنت، پروتکل‌های امنی نقش مهمی را برعهده دارند. یکی از جمله مهم‌ترین این پروتکل‌ها که از آن نام بردیم، HTTPS است. اگر قصد دارید اطلاعات خود را محفوظ نگه دارید و نمی‌خواهید شخص ثالثی به داده‌های شما و کاربرانتا دسترسی پیدا کند، پیشنهاد می‌کنیم فرصت مطالعه‌ی مقاله‌ی پروتکل https چیست را از دست ندهید.

پیش نیازها برای نصب وب سرور caddy

در این مقاله، ما به شما آموزش می‌دهیم که چگونه وب سرور caddy را از منبع با استفاده از xcaddy (یک ابزار سفارشی سازنده Caddy) ساخته و از آن برای میزبانی سایتی که توسط پروتکل HTTPS ایمن شده است، استفاده نمایید.

به یاد داشته باشید که برای نصب و کامپایل کردن آن به استفاده از Caddyfile و نصب افزونه نیاز است. در پایان مراحل نصب، دامنه‌ی شما صفحات استاتیک را ارائه می‌دهد، در حالیکه با گواهینامه‌های رایگان TLS از Let’s Encrypt ایمن شده است. (اگر با معنا، مفهوم و کارایی وب سرور آشنایی ندارید،‌پیشنهاد می‌کنیم مقاله‌ی وب سرور چیست را مطالعه نمایید)

موارد مورد نیاز برای نصب کدی سرور

  • یک سرور اوبونتو 18.04 با دسترسی root
  • یک نام دامنه یک رکورد dns

روش اول ساخت وب سرور caddy

در این مرحله، ما تلاش می‌کنیم تا Caddy را با استفاده از افزودن افزونه‌ها و بدون تغییر کد منبع Caddy نصب نماییم. این کار، با استفاده از xcaddy انجام می‌شود که وب سرور caddy و افزونه‌های آن را بر اساس نیاز شما دانلود کرده و به ساخت آن اقدام می‌نماید.

cd /tmp

سپس، آخرین نسخه را با استفاده از این لینک دانلود کرده و پس از دانلود، تنها فایل باینری را استخراج کنید:

tar xvf xcaddy_0.1.8_linux_amd64.tar.gz xcaddy

در نهایت، فایل اجرایی xcaddy را به /usr/bin منتقل کنید:

sudo mv xcaddy /usr/bin

اکنون که xcaddy نصب شده است، Caddy آماده است:

mkdir ~/caddy

با اجرای دستور زیر به دایرکتوری بروید:

cd ~/caddy

برای ساخت آخرین نسخه Caddy از دستور زیر استفاده کنید:

xcaddy build

پس از اتمام آن، فایل اجرایی caddy در پوشه فعلی در دسترس شماقرار خواهد گرفت. برای نصب، آن را به /usr/bin منتقل کنید:

sudo mv caddy /usr/bin

می‌توانید caddy را اجرا کنید تا مطمئن شوید که درست نصب شده است:

caddy version

خروجی شامل نسخه‌ای از Caddy است که به تازگی کامپایل کرده‌اید:

Output

v2.3.0 h1:fnrqJLa3G5vfxcxmOH/+kJOcunPLhSBnjgIvjXV/QTA=

با اجرای درست و دقیق تمامی این مراحل، شما caddy‌سرور را نصب و اجرا کرده‌اید. شما الان Caddy را ساخته و اجرا کرده‌اید.

روش دوم ساخت وب سرور caddy

sudo groupadd --system caddy

سپس یک کاربر جدید به نام caddy ایجاد کنید که متعلق به گروه caddy است:

sudo useradd --system \

    --gid caddy \

    --create-home \

    --home-dir /var/lib/caddy \

    --shell /usr/sbin/nologin \

    --comment "Caddy web server" \

    Caddy

کاربر جدید caddy 

directory اصلی خود را ایجاد کرده و Ownership دایرکتوری را عوض کنید.

sudo chown root:root /usr/bin/caddy

با این کار، دیگر حساب‌ها از تغییر فایل اجرایی جلوگیری می‌کنند. با این حال، حتی در حالی که کاربر ریشه، صاحب Caddy است، توصیه می‌شود آن را فقط با استفاده از سایر حساب‌های غیرریشه‌ای موجود در سیستم اجرا کند؛ همانطور که در مورد سرویس systemd چنین خواهد بود. این موضوع سبب می‌شود تا شما اطمینان حاصل کنید که در صورت به خطر افتادن وب سرور caddy (یا برنامه دیگری)، مهاجم و هکر نمی‌تواند باینری را تغییر دهد یا دستورات را به عنوان root اجرا کند.

در مرحله بعد، مجوزهای فایل باینری را روی 755 تنظیم کنید؛ این به root مجوزهای کامل خواندن، نوشتن و اجرای فایل را می‌دهد، در حالی که سایر کاربران فقط می‌توانند آن را بخوانند و اجرا کنند:

sudo chmod 755 /usr/bin/caddy

یک دایرکتوری ایجاد کنید که در آن فایل‌های پیکربندی سرور کدی را با اجرای دستور زیر ذخیره کنید:

sudo mkdir /etc/caddy

سپس، مجوزها را ست کنید:

sudo chown -R root:caddy /etc/caddy

تنظیم کاربر به‌عنوان root

تنظیم کاربر به‌عنوان root و گروه به‌عنوان سرور کدی تضمین می‌کند که Caddy دسترسی خواندن و نوشتن به پوشه (از طریق گروه caddy) را خواهد داشت و تنها حساب کاربری superuser از حقوق یکسانی برای خواندن و تغییر برخوردار است.

در مرحله بعد، باید ارائه خودکار گواهی TLS را از طریق Let’s Encrypt فعال کنید. در زمان آماده‌سازی برای ssl، یک دایرکتوری برای ذخیره هر گونه گواهینامه TLS که وب سرور caddy بدست می‌آورد ایجاد کرده و قوانین مالکیت مشابه دایرکتوری /etc/caddy را به آن بدهید:

sudo mkdir /etc/ssl/caddy

sudo chown -R root:caddy /etc/ssl/caddy

Caddy باید بتواند گواهی‌ها را در این فهرست نوشته و از آن بخواند تا در نهایت درخواست‌ها را رمزگذاری کند. به همین دلیل، مجوزهای دایرکتوری /etc/ssl/caddy را تغییر دهید تا فقط توسط root و سرور کدی قابل دسترسی باشد:

sudo chmod 0770 /etc/ssl/caddy

سپس یک دایرکتوری برای ذخیره فایل‌هایی که Caddy میزبانی می‌کند، ایجاد کنید:

sudo mkdir /var/www

سپس، مالک و گروه دایرکتوری را روی سرور کدی قرار دهید:

sudo chown caddy:caddy /var/www

وب سرور caddy پیکربندی خود را از فایلی به نام Caddyfile که در /etc/caddy ذخیره شده است، می‌خواند. با اجرای دستور زیر فایل را ایجاد کنید:

sudo touch /etc/caddy/Caddyfile

اجرای فایل systemd unit در وب سرور caddy

برای نصب سرویس Caddy، فایل systemd unit را از مخزن Caddy GitHub به /etc/systemd/system با اجرای دستور زیر دانلود کنید:

sudo sh -c 'curl https://raw.githubusercontent.com/caddyserver/dist/master/init/caddy.service > /etc/systemd/system/caddy.service'

مجوزهای فایل service را تغییر دهید:

sudo chmod 644 /etc/systemd/system/caddy.service

سپس، برای شناسایی سرویس سرور کدی، systemd را دوباره راه‌اندازی کنید:

sudo systemctl daemon-reload

بررسی کنید که آیا systemd با اجرای وضعیت systemctl سرویس Caddy را شناسایی کرده است یا خیر:

sudo systemctl status caddy

در نهایت خروجی مشابه زیر را خواهید دید:

Output:

 caddy.service - Caddy

     Loaded: Loaded (/etc/systemd/system/caddy.service; disabled; preset vendor: enabled)

     Active: Disabled (Dead)

اگر همین خروجی را مشاهده کردید، سرویس جدید به درستی توسط systemd شناسایی شده است.

فایروال را راه‌اندازی کنید.

sudo ufw allow proto tcp from any to any port 80,443

Output

Rule added

Rule added (v6)

روش سوم: پیکربندی کدی سرور

در این بخش، پیکربندی اولیه Caddy را برای ارائه فایل‌های استاتیک از  خود می‌نویسیم.

با ایجاد یک فایل HTML اصلی در /var/www به نام index.html شروع کنید:

sudo nano /var/www/index.html

<!DOCTYPE html>

<html>

<head>

<title>Hello from Caddy!</title>

</head>

<body>

<h1 style="font-family: sans-serif">This page is being served via Caddy</h1>

</body>

</html>

هنگامی که این فایل در یک مرورگر وب نشان داده می‌شود، عنوانی با متن This page is being served via Caddy نشان می‌دهد. تنیمات خود را ذخیره کرده و فایل را ببندید.

sudo nano /etc/caddy/Caddyfile

http:// {

    root * /var/www

    encode gzip

    file_server

}

این یک پیکربندی اولیه Caddy است و اعلام می‌کند که تمام ترافیک HTTP به سرور شما باید با فایل‌های (file_server) از /var/www (که به‌عنوان root مشخص شده است) ارائه و با استفاده از gzip فشرده شود تا زمان بارگذاری صفحه در سمت مشتری کاهش یابد. وقتی کارتان تمام شد، فایل را ذخیره و ببندید.

برای آزمایش اینکه همه چیز به درستی کار می‌کند، سرویس Caddy را راه‌اندازی کنید:

sudo systemctl start caddy

در مرحله بعد، systemctl status را اجرا کنید تا اطلاعاتی در مورد وضعیت سرویس Caddy پیدا کنید:

sudo systemctl status caddy
امیدواریم که در این مقاله توانسته باشیم به طور کامل توضیح دهیم که وب سرور caddy چیست و چگونه می‌توان آن را نصب کرد. اما اگر در این خصوص به مشکلی برخوردید، سوالات خود را با ما در قسمت کامنت به اشتراک بگذارید تا در سریع‌ترین زمان ممکن به آنها پاسخ دهیم. علاوه بر آن ما در پیج اینستاگرامی خود، پیرامون جدیدترین و تازه‌ترین اخبار حوزه‌ی تکنولوژی و فناوری صحبت خواهیم کرد. ما را در اینستاگرام دنبال کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا