تنظیم دامنه شخصی بر روی پلتفرم ابری آروان
پلتفرم ابری در واقع یک مدل از مبحث رایانش ابری است که سرویسدهنده با ایجاد امکانات سختافزاری و برخی ابزارها، سرعت توسعه نرمافزار را بالا برده و دغدغهی توسعهدهنده را در ارتباط با زیرساختهای موردنیاز محصول، رفع میکند.
در این مقاله به نحوهی تنظیم دامنهی شخصی جهت استفاده در پلتفرم ابری آروان میپردازیم.
پیشنیازها
ایجاد رکورد
در مقالات پیشین، نحوهی ایجاد اپلیکیشن روی پلتفرم ابری آروان توضیح داده شد. همچنین در این مقاله بیان شد که چگونه میتوان از طریق route به اپلیکیشن، درخواستهای http و https ارسال کرد. در این مقاله چگونگی استفاده از دامنهی شخصی خودتان و تنظیم آن برای اپلیکیشن موجود در پلتفرم ابری آروان شرح داده خواهد شد. پیش نیاز اصلی استفاده از این ویژگی، انتقال دامنه شخصی به DNS ابر آروان است.
پس از انتقال دامنه خود، میبایست یک رکورد برای نام دامنهای که قصد دارید روی اپلیکیشن خود قرار دهید، ایجاد کنید.
این رکورد میبایست از نوع CNAME بوده و مقدار default-gateway.ir-thr-at1.arvan.run گرفته و نماد ابر آن روشن باشد.
توجه کنید که حتمن میبایست نماد ابر این رکورد فعال باشد. همچنین مقدار default-gateway.ir-thr-at1.arvan.run برای ریجن آسیاتک است. برای ریجنی مثل مبیننت این مقدار معادل default-gateway.ir-thr-mn1.arvan.run است. ( این ریجن در حال حاضر فعال نیست)
همچنین توجه کنید که این روش برای subdomainها قابل استفاده است. در صورتی که نیاز دارید که از root domain برای اپلیکیشن خود استفاده کنید، در بخشهای بعدی درباره آن توضیح داده خواهد شد.
قدم بعدی ساخت route مربوط به دامنهی مورد نظر است.
ساخت route
در مقالهی آموزش ساخت route اطلاعات کاملی راجع به نحوه ساخت و کاربرد route گفته شد. برای استفاده از دامنه شخصی کافیست یک route تعریف کرده و در بخش host، دامنهی مورد نظر خود را وارد کنید برای مثال:
apiVersion: v1 kind: Route metadata: name: nginx-route spec: host: my-app.example.com to: kind: Service name: nginx-service tls: termination: edge insecureEdgeTerminationPolicy: Allow port: targetPort: http
نکته: دندانهگذاری (indentation) در فایلهای yaml مهم است و کوچکترین جابهجایی میتواند باعث برگرداندن خطا و یا تنظیمات ناخواسته شود.
در ادامه فیلدهای مربوطه توضیح داده میشود:
kind: مشخصکننده نوع ماهیت است. این فیلد میتواند مقادیری مانند: Pod ،Route ،Service ،StatefulSet و… داشته باشد. در این مثال، هدف تعریف route است که این مقدار مشخص شده است.
metadata.name: مشخصکنندهی نام route است.
spec.host: مشخصکنندهی دامنهای است که از طریق آن میتوان از خارج از پلتفرم ابری آروان درخواستها را به route ارسال کرد. توجه کنید که مقدار قرار داده شده معادل رکوردی است که تنظیم کردهاید.
spec.to: مشخصکنندهی موجودیتی است که باید درخواستها به سمت آن هدایت شود. در این مثال درخواستها به service مربوط به nginx ارسال میشود.
spec.tls: در این بخش اطلاعات لازم جهت tls termination قرار میگیرد.
spec.tls.termination: این فیلد مشخص میکند که نحوه termination به چه صورت باشد. مقادیر مجاز برای این فیلد edge ،passthrough و reencrypt است که در این مقاله توضیح داده شدهاند.
spec.tls.insecureEdgeTerminationPolicy: به صورت پیشفرض اجازه عبور ترافیک ناامن (http) داده نمیشود. با قرار دادن spec.tls.insecureEdgeTerminationPolicy برابر با Allow، ترافیکهای ناامن نیز اجازه عبور از route را خواهند داشت.
spec.port.targetPort: توجه داشته باشید که route میتواند ترافیک را صرفن به یک port تعریف شده در service ارسال کند. بهشکل پیشفرض، route ترافیک را به port ای ارسال میکند که در تعریف service زودتر تعریف شده باشد. در صورتی که نیازمند ارسال ترافیک به port خاصی از سرویس باشید، از این فیلد برای اختصاص port جهت ارسال ترافیک میتوانید استفاده کنید.
خطوط بالا را در یک فایل به نام nginx-route.yaml وارد کرده و ذخیره کنید. سپس از طریق کامند لاین با دستور زیر، route خود را به پلتفرم ابری آروان ارایه کنید.
arvan paas apply -f nginx-route.yaml
سپس با دستور زیر میتوانید از وضعیت route خود و اجرای آن بر روی پلتفرم ابری آروان آگاه شوید.
arvan paas get route
خروجی مشابه زیر خواهد بود:
$ arvan paas get route
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
nginx-route my-app.example.com nginx-service <all> edge/Allow None
توجه کنید، از آنجا که شما نماد ابر را برای رکورد خود فعال کردید، و همچنین ترافیک از route به اپلیکیشن شما به صورت http ارسال میشود، نیازی به ارایه certificate نیست و با تنظیمات گفته شده، از ترافیک https نیز برای ارسال درخواست به اپلیکیشن خود میتوانید بهره ببرید.
استفاده از root domain
در بخش قبل، نحوه استفاده از subdomain اختصاصی خود برای اپلیکیشن ساخته شده در پلتفرم ابری آروان بیان شد. برای استفاده از root domain نمیتوان به طور مستقیم رکورد CNAME استفاده کرد. با این حال روشی وجود دارد تا بتوان تا حدی این مسئله را حل کرد.
برای استفاده از root domain ابتدا subdomain با پیشوند www را همانند آنچه در بخش قبل گفته شد به آدرس default-gateway.ir-thr-at1.arvan.run در پنل DNS ابر آروان CNAME کرده و نماد ابر آن را روشن کنید.
سپس یک route برای آدرس این دامنه بسازید. برای مثال route ساخته شده باید به شکل زیر باشد.
$ arvan paas get route
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
nginx-route www.example.com nginx-service <all> edge/Allow None
سپس از طریق پیشخوان داشبورد DNS ابر آروان گزینه انتقال خودکار دامنه به www را فعال کنید. با فعالسازی این گزینه، ترافیک ورودی به دامنه اصلی به طور خودکار به subdomain مشخص شده یعنی www منتقل میشود.