پرش به مطلب اصلی

سرویس GeoIP

بسیاری از ارایه‌دهندگان سرویس‌های وب نیاز دارند تشخیص دهند IP درخواست‌دهنده متعلق به کدام کشور است تا برای نمونه، زبان نمایش وب‌سایت را متناسب با آن قرار دهند. یکی از راهکارهای رایج برای حل این چالش، خرید یک دیتابیس GeoIP و پیاده‌سازی یک API است که اطلاعات کشور مرتبط با IP درخواست‌دهنده را از آن دیتابیس دریافت کند. اما این راهکار علاوه‌بر هزینه پیچیدگی‌های خود را دارد؛ از جمله نیاز به تهیه‌ی سرور یا کانتینر، نگه‌داری دیتابیس و پیاده‌سازی High Availability (HA).

با استفاده از سرویس پردازش لبه یا Edge Computing آروان‌کلاد، می‌توانید این قابلیت را سریع‌تر و ساده‌تر راه‌اندازی کنید.

هنگامی که یک درخواست به شبکه‌ی CDN آروان‌کلاد می‌رسد، دیتابیس‌های به‌روز، اطلاعات کشور درخواست‌دهنده را تشخیص داده و آن را در قالب هدر HTTP به درخواست اضافه و به سرور بک‌اند ارسال می‌کنند. سرویس پردازش لبه‌ی آروان مشابه یک سرویس بک‌اند است، با این تفاوت که کد شما در تمام نقاط حضور و سرورهای CDN به‌‌طور توزیع‌شده اجرا می‌شود.

توسعه و استقرار در پردازش لبه

با استفاده از نمونه کد زیر، می‌توانید این سناریو را به‌کمک پردازش لبه‌ی آروان پیاده‌سازی و اجرا کنید. در این کد، هدر X-Country-Code که از CDN آروان‌کلاد به درخواست اضافه شده است، خوانده و در قالب JSON به درخواست‌دهنده ارسال می‌شود.

addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});

async function handleRequest(request) {
const COUNTRY_CODE = "X-Country-Code";
const country = request.headers.get(COUNTRY_CODE);
return new Response(JSON.stringify({ "country": country }), {
headers: { 'content-type': 'application/json' }
});
}

کد کشورها به‌شکل یک عبارت دو حرفی و مشابه نمونه‌ی زیر ارسال می‌شود:

{
"country": "IR"
}

به‌سادگی می‌توانید این کد را در پنل پردازش لبه‌ی آروان وارد کرده و آن را به‌کمک یک آدرس وب منتشر کنید.

هم‌چنین اگر بخواهید از دامنه‌های دیگر به پردازش لبه‌ی خود درخواست ارسال کنید، می‌توانید از بخش «مسیر جدید» این کار را انجام دهید.

از بخش «گزارش‌ها» نیز می‌توانید تعداد درخواست‌های دریافت‌شده توسط سرویس را در بازه‌های زمانی مختلف مشاهده کنید.

به این ترتیب، با استفاده از سرویس پردازش لبه‌ی آروان‌کلاد می‌توانید در کم‌تر از یک دقیقه، یک سرویس GeoIP را به راحتی پیاده‌سازی کرده و کشور واقعی درخواست‌دهنده را تشخیص دهید.