برنامه نویسی

استفاده از Caddy برای ارائه فایل‌های استاتیک در پشت Load Balancer

Summarize this content to 400 words in Persian Lang
سرور Caddy ثابت کرده است که یک پروژه بسیار امیدوارکننده است. نه تنها سریع است، بلکه دارای بسیاری از ویژگی های داخلی است که پیکربندی را تا حد زیادی ساده می کند. یک مثال صدور خودکار گواهینامه های SSL است. علاوه بر این، راه اندازی یک سرویس با استفاده از Caddy بسیار آسان است.

این هفته، من نیاز به ایجاد یک سرویس برای انتشار فایل های استاتیک داشتم. هنگام تلاش برای انجام این کار با پیکربندی پیش‌فرض Caddy، متوجه شدم که به دلیل سناریوی کمی متفاوت امکان‌پذیر نیست.

در سناریوی من، این سرویس پشت یک متعادل کننده بار در zCloud اجرا می شود که از قبل مسئول تولید گواهی ها و مدیریت خاتمه TLS/SSL است. پیکربندی پیش‌فرض باعث ایجاد مشکلاتی شد زیرا نباید گواهی SSL ایجاد کند، بلکه فقط فایل‌ها را در پورت HTTP پیش‌فرض ارائه می‌کرد.

علاوه بر این، یک ویژگی دیگر وجود داشت: من به یک نقطه پایانی بررسی سلامت با دسترسی عمومی نیاز داشتم، در حالی که همه چیز باید با استفاده از احراز هویت استاندارد “Basic Auth” مسدود شود.

در اینجا فایل مورد استفاده برای انجام این کار به روشی ساده است:

{
auto_https off
}
:8080 {
route /_health* {
respond 200
}
route {
basic_auth / {
USER_NAME HASH_PASSWORD
}
root * /var/www/static
file_server
}
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بیایید پیکربندی را تجزیه کنیم:

غیرفعال کردن SSL

auto_https off

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این کار صدور گواهینامه خودکار را غیرفعال می کند و هدایت مجدد به HTTPS را غیرفعال می کند.

بندر

:8080 {
# …

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این پورتی را مشخص می کند که برای دریافت اتصالات باز می شود.

بررسی سلامت

route /_health* {
respond 200
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این مسیر دسترسی عمومی به نقطه پایانی چک سلامت را فراهم می کند.

فایل های استاتیک با احراز هویت

route {
basic_auth / {
USER_NAME HASH_PASSWORD
}
root * /var/www/static
file_server
}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این بخش از پیکربندی تمام درخواست‌های دیگر را دریافت می‌کند، آنها را رهگیری می‌کند و در صورت عدم ورود کاربر مجبور به ورود به سیستم می‌شود و فایل‌ها را از /var/www/static دایرکتوری

را USER_NAME ارزش نام کاربری است که برای احراز هویت استفاده می شود.را HASH_PASSWORD مقدار هش تولید شده توسط Caddy CLI بر اساس رمز عبور تعریف شده است. برای ایجاد این مقدار، به سادگی دستورالعمل های موجود در مستندات رسمی basic_auth را دنبال کنید.

نتیجه گیری

این پیکربندی Caddy Server راه حلی زیبا برای ارائه فایل‌های استاتیک با احراز هویت ارائه می‌کند و در عین حال به یک نقطه پایانی بررسی سلامت عمومی اجازه می‌دهد. انعطاف پذیری و سادگی Caddy آن را به گزینه ای عالی برای سناریوهای مختلف استقرار تبدیل می کند.

سرور Caddy ثابت کرده است که یک پروژه بسیار امیدوارکننده است. نه تنها سریع است، بلکه دارای بسیاری از ویژگی های داخلی است که پیکربندی را تا حد زیادی ساده می کند. یک مثال صدور خودکار گواهینامه های SSL است. علاوه بر این، راه اندازی یک سرویس با استفاده از Caddy بسیار آسان است.

این هفته، من نیاز به ایجاد یک سرویس برای انتشار فایل های استاتیک داشتم. هنگام تلاش برای انجام این کار با پیکربندی پیش‌فرض Caddy، متوجه شدم که به دلیل سناریوی کمی متفاوت امکان‌پذیر نیست.

در سناریوی من، این سرویس پشت یک متعادل کننده بار در zCloud اجرا می شود که از قبل مسئول تولید گواهی ها و مدیریت خاتمه TLS/SSL است. پیکربندی پیش‌فرض باعث ایجاد مشکلاتی شد زیرا نباید گواهی SSL ایجاد کند، بلکه فقط فایل‌ها را در پورت HTTP پیش‌فرض ارائه می‌کرد.

علاوه بر این، یک ویژگی دیگر وجود داشت: من به یک نقطه پایانی بررسی سلامت با دسترسی عمومی نیاز داشتم، در حالی که همه چیز باید با استفاده از احراز هویت استاندارد “Basic Auth” مسدود شود.

در اینجا فایل مورد استفاده برای انجام این کار به روشی ساده است:



{
  auto_https off
}
:8080 {
    route /_health* {
        respond 200
    }
    route {
        basic_auth / {
            USER_NAME HASH_PASSWORD
        }
        root * /var/www/static
        file_server
    }
}


وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بیایید پیکربندی را تجزیه کنیم:

غیرفعال کردن SSL



auto_https off


وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این کار صدور گواهینامه خودکار را غیرفعال می کند و هدایت مجدد به HTTPS را غیرفعال می کند.

بندر



:8080 {
# ...


وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این پورتی را مشخص می کند که برای دریافت اتصالات باز می شود.

بررسی سلامت



    route /_health* {
        respond 200
    }


وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این مسیر دسترسی عمومی به نقطه پایانی چک سلامت را فراهم می کند.

فایل های استاتیک با احراز هویت



    route {
        basic_auth / {
            USER_NAME HASH_PASSWORD
        }
        root * /var/www/static
        file_server
    }


وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این بخش از پیکربندی تمام درخواست‌های دیگر را دریافت می‌کند، آنها را رهگیری می‌کند و در صورت عدم ورود کاربر مجبور به ورود به سیستم می‌شود و فایل‌ها را از /var/www/static دایرکتوری

را USER_NAME ارزش نام کاربری است که برای احراز هویت استفاده می شود.
را HASH_PASSWORD مقدار هش تولید شده توسط Caddy CLI بر اساس رمز عبور تعریف شده است. برای ایجاد این مقدار، به سادگی دستورالعمل های موجود در مستندات رسمی basic_auth را دنبال کنید.

نتیجه گیری

این پیکربندی Caddy Server راه حلی زیبا برای ارائه فایل‌های استاتیک با احراز هویت ارائه می‌کند و در عین حال به یک نقطه پایانی بررسی سلامت عمومی اجازه می‌دهد. انعطاف پذیری و سادگی Caddy آن را به گزینه ای عالی برای سناریوهای مختلف استقرار تبدیل می کند.

نوشته های مشابه

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

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

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