دنبال کردن درخواست در DNS و Traefik
تفاوت تبدیل نام، انتشار پورت، مسیریابی و پاسخ برنامه را با آزمایش ببینید.
حلکنندهٔ DNS نام را به نشانی تبدیل میکند. پراکسی معکوس درخواست HTTP را میگیرد و برنامهٔ مقصد را انتخاب میکند. هیچکدام بهتنهایی مجوز استفاده از برنامه نمیدهد.
Browser / curl
-> 127.0.0.1:18080 (local machine or SSH forward)
-> gateway:8080, Host: lab.test
-> web:8080 on the lab network
-> index.html
در محیط تمرینی، گزینهٔ curl --resolve بدون تغییر DNS یک نگاشت موقت میسازد. lab.test نام رزروشده برای مثال است. هدر Host همچنان lab.test است؛ Traefik مسیریاب تعریفشده در core/gateway/routes.yaml را انتخاب و درخواست را به http://web:8080 میفرستد.
Docker نام web را در شبکهٔ مشترک پیدا میکند. لپتاپ یا DNS عمومی به دانستن این نام نیاز ندارد. تنظیم dns: [127.0.0.1] در گیتوی تمرینی مانع تبدیل مفید نامهای خارجی میشود، ولی Docker نام سرویسهای در حال اجرا را همچنان پاسخ میدهد. این کار از حل شدن نام مقصد متوقفشده از طریق wildcard خارجی جلوگیری میکند. آن را برای برنامهای که به نامهای اینترنتی نیاز دارد کپی نکنید.
دو آزمایش مشخص
روی سرور تمرینی، curl -i http://127.0.0.1:18080/ باید 404 بدهد، چون مسیری برای این نام تعریف نشده است. سپس curl -i --resolve lab.test:18080:127.0.0.1 http://lab.test:18080/ را اجرا کنید. پاسخ 200 نشان میدهد مسیر و برنامه کار میکنند. خود برنامه هم ممکن است 404 بدهد؛ پیش از تغییر مسیر، گزارش گیتوی را بخوانید.
مقصد را localhost:8080 نگذارید؛ داخل کانتینر Traefik این نشانی خود Traefik است. نام سرویس Compose و پورت داخلی برنامه را به کار ببرید. پورت 18080 میزبان، پورت مقصد نیست.
استفاده از دامنه در مرحلهٔ بعد
این مثال را محلی نگه دارید. برای سرویس عمومی به دامنهٔ خودتان، HTTPS، احراز هویت در صورت نیاز، بهروزرسانی، بازیابی و مسیر مشخص نیاز دارید. Cloudflare Tunnel اتصال خروجی به سرویس ورودی ایجاد میکند، اما خودکار ورود کاربر را اجباری نمیکند. Cloudflare Access لایهٔ سیاست جداگانه است. VPN خصوصی هم برای سرویسهایی که فقط خودتان استفاده میکنید مناسب است.
ابتدا یادداشت گیتوی و سپس تونل یا VPN را بخوانید. برای عمومی کردن یک صفحه، مدیریت DNS، متریک، پشتیبان، API داکر یا کل داشبورد را عمومی نکنید. تنظیمات فایل Traefik
مرحلهٔ بعد: عیبیابی استک.