اگر سایت پس از اتصال به CDN باز نمیشود، به ترتیب اینها را بررسی کنید: ۱) رکورد DNS درست به CDN اشاره میکند و منتشر شده است، ۲) وضعیت دامنه در پنل CDN «فعال» است، ۳) سرور مبدأ مستقیم و بدون CDN درست پاسخ میدهد، ۴) پورت و پروتکل بین CDN و مبدأ درست تنظیم شده، ۵) ریدایرکتهای HTTP/HTTPS حلقه نمیسازند، ۶) فایروال مبدأ درخواستهای لبه را مسدود نکرده است. بیشتر مشکلات در یکی از همین شش مورد است.
ابتدا: پیام خطا چیست؟
| آنچه میبینید | احتمالاً کجاست |
|---|---|
| DNS_PROBE / سایت پیدا نشد | رکورد DNS |
| خطای گواهی (NET::ERR_CERT…) | دامنه هنوز فعال نشده یا SSL |
| ERR_TOO_MANY_REDIRECTS | تنظیم ریدایرکت HTTPS |
| 502 / 504 / 52x | ارتباط CDN با سرور مبدأ — راهنمای خطاهای 5xx |
| 403 | فایروال یا محدودیت روی مبدأ |
| صفحهٔ قدیمی | کش CDN یا مرورگر |
گام ۱: DNS
dig +short cdn.example.com CNAME
dig +short cdn.example.com
- خروجی دستور اول باید سابدامین اختصاصی CDN شما باشد.
- اگر خالی است یا آیپی سرور خودتان را نشان میدهد، رکورد درست ثبت یا منتشر نشده است؛ TTL و Propagation را بخوانید.
- رکورد A یا AAAA همنام با CNAME نباید وجود داشته باشد.
- در Cloudflare، Proxy باید روی DNS only باشد.
گام ۲: وضعیت دامنه در پنل CDN
در کلودیفای از «مدیریت سرویسها ← دامنهٔ اختصاصی» وضعیت دامنه را ببینید. تا وقتی «فعال» نشده، گواهی TLS برای آن صادر نشده و اتصال با خطای گواهی روبهرو میشود. در این فاصله از سابدامین اختصاصی خود CDN استفاده کنید. راهنمای کامل: اتصال دامنه به CDN.
گام ۳: سرور مبدأ بدون CDN سالم است؟
از یک سیستم دیگر یا خود سرور، مبدأ را مستقیم تست کنید:
# روی خود سرور مبدأ
curl -I http://127.0.0.1:PORT/
# از بیرون، مستقیم به آیپی مبدأ با Host دامنه
curl -I -H "Host: cdn.example.com" http://ORIGIN_IP:PORT/
اگر مبدأ مستقیم هم پاسخ نمیدهد، مشکل از CDN نیست: سرویس وب، پورت یا اپلیکیشن را بررسی کنید (systemctl status nginx، ss -tlnp).
$ curl -sv --resolve example.com:443:203.0.113.10 https://example.com/ -o /dev/null* Connected to example.com (203.0.113.10) port 443< HTTP/2 200$
گام ۴: پورت و پروتکل بین CDN و مبدأ
- آدرس و پورتی که در پنل CDN برای مبدأ ثبت کردهاید باید دقیقاً همان باشد که سرویس روی آن گوش میدهد.
- اگر سرویس روی
127.0.0.1گوش میدهد، از بیرون (و از CDN) در دسترس نیست؛ باید روی آیپی عمومی یا0.0.0.0گوش دهد (و با فایروال محافظت شود). - اگر سرویس بلادرنگ دارید (WebSocket)، مطمئن شوید مسیر و هدرهای Upgrade در وبسرور مبدأ درست تنظیم شده است.
گام ۵: ریدایرکت و SSL
خطای «Too many redirects» معمولاً وقتی رخ میدهد که:
- CDN با HTTP به مبدأ وصل میشود و مبدأ هر درخواست HTTP را به HTTPS ریدایرکت میکند؛ کاربر دوباره به CDN میرسد و چرخه تکرار میشود.
- افزونهها یا تنظیمات CMS (مثلاً آدرس سایت در وردپرس) با پروتکل واقعی هماهنگ نیستند.
راهحل: یا ریدایرکت HTTPS را فقط در یک لایه انجام دهید، یا در مبدأ بر اساس هدر X-Forwarded-Proto تصمیم بگیرید.
گام ۶: فایروال و محدودیتها روی مبدأ
- فایروال (UFW، iptables، فایروال پنل ارائهدهنده) باید اجازهٔ ورود درخواستها روی پورت مبدأ را بدهد.
- ابزارهایی مثل Fail2ban یا محدودکنندهٔ نرخ ممکن است آیپی لبهها را — که تعداد زیادی درخواست از طرف کاربران ارسال میکنند — مسدود کنند.
- برای دیدن آیپی واقعی کاربر در لاگها، هدرهای ارسالی CDN (مانند
X-Forwarded-For) را در وبسرور پیکربندی کنید.
گام ۷: کش
اگر سایت باز میشود اما نسخهٔ قدیمی را نشان میدهد:
- کش مرورگر را با Ctrl+Shift+R یا پنجرهٔ ناشناس دور بزنید.
- هدرهای
Cache-Controlمبدأ را بررسی کنید:curl -I https://cdn.example.com/page. - مفهوم کش و TTL را در کش (Cache) چیست؟ بخوانید.
جمعبندی در یک جدول
| # | بررسی | ابزار |
|---|---|---|
| ۱ | CNAME درست و منتشر شده | dig |
| ۲ | دامنه در پنل «فعال» | پنل CDN |
| ۳ | مبدأ مستقیم سالم | curl -I روی مبدأ |
| ۴ | پورت/آدرس مبدأ درست | ss -tlnp، پنل CDN |
| ۵ | بدون حلقهٔ ریدایرکت | curl -IL |
| ۶ | فایروال مبدأ باز | ufw status، لاگها |
| ۷ | کش | curl -I، پنجرهٔ ناشناس |
چه اطلاعاتی برای پشتیبانی بفرستیم؟
دامنه یا سابدامین، زمان دقیق خطا، متن یا کد خطا، خروجی dig و curl -I از سمت خودتان و نتیجهٔ تست مستقیم مبدأ. با این اطلاعات بررسی بسیار سریعتر انجام میشود.
سؤالات متداول
قبل از اتصال CDN سایت کار میکرد؛ چرا حالا نه؟
معمولاً بهدلیل تفاوت پورت/پروتکل بین CDN و مبدأ، ریدایرکت HTTPS یا فایروالی که درخواست لبهها را مسدود میکند.
چطور موقتاً CDN را دور بزنم؟
رکورد DNS را به آیپی مبدأ برگردانید (با TTL کوتاه)، یا برای تست شخصی، دامنه را در فایل hosts به آیپی مبدأ ببرید.
هزینهٔ CDN در زمان خطا هم کسر میشود؟
هزینه بر اساس ترافیک دانلود واقعی محاسبه میشود؛ مصرف را میتوانید در «مدیریت سرویسها» ببینید.
موجودیام تمام شده بود؛ ربطی دارد؟
بله؛ با اتمام موجودی، CDN موقتاً متوقف میشود و پس از شارژ حداکثر ظرف ۵ دقیقه دوباره فعال میشود.
از ۱٬۲۰۰ تومان در ساعت · پرداخت ریالی



