محتوای آموزشی وبلاگ نتآرام
تصور کنید برای ذخیره یک محصول دکمه را میزنید، نشانگر میچرخد و در آخر خطای 504 Gateway Timeout ظاهر میشود. یکی از بخشهای مسیر منتظر پاسخ بخش بعدی مانده و زمان انتظارش تمام شده است. این خطا نمیگوید دقیقاً کدام افزونه مقصر است؛ باید همان کاری را پیدا کنیم که دیر تمام میشود.
قبل از تکرار، نتیجه کار را ببینید
اگر هنگام پرداخت، ارسال سفارش یا درونریزی خطا گرفتهاید، فوراً دوباره دکمه را نزنید. ممکن است سرور کار را انجام داده باشد اما پاسخ به مرورگر نرسیده باشد. فهرست سفارشها، موجودی یا نتیجه درونریزی را نگاه کنید تا سفارش یا عملیات تکراری ساخته نشود. هنگام تردید، شناسه سفارش و زمان را به پشتیبانی بدهید.
مشخص کنید مشکل فقط یک مسیر است یا همه سایت
صفحه اصلی، یک نوشته ساده و همان صفحهای را که مشکل دارد در پنجره خصوصی باز کنید. اگر صفحههای ساده سریعاند و فقط تولید گزارش یا ذخیره محصول خطا میدهد، روی همان کار تمرکز کنید. اگر همه صفحهها کند شدهاند، همزمانی بازدید، وضعیت منابع و سلامت سرویس میزبان باید بررسی شود.
زمان دریافت پاسخ را میتوانید با دستور زیر اندازه بگیرید. به جای آدرس نمونه، نشانی عمومی سایت خودتان را بگذارید:
کد / دستورcurl -L -s -o /dev/null -w 'HTTP: %{http_code}\nTotal: %{time_total}s\n' https://example.com/
خروجی
HTTP کد پاسخ و Total زمان کل را نشان میدهد. این آزمایش فقط یک نمونه از همان شبکه است و ثابت نمیکند همه بازدیدکنندگان همین تجربه را دارند. از آن برای تکرار مکرر عملیات پرداخت استفاده نکنید.کار بزرگ را کوچکتر کنید
برای درونریزی محصولات، فایل را به چند بخش کوچک تقسیم کنید یا تعداد ردیف هر نوبت را در ابزار درونریزی پایین بیاورید. ابتدا بخش کوچکی را امتحان و نتیجه را با تعداد مورد انتظار مقایسه کنید. برای گزارشهای بزرگ، اگر افزونه امکان اجرای پسزمینه یا خروجی دستهای دارد از آن استفاده کنید. برای درخواستهای متصل به سرویس بیرونی، وضعیت آن سرویس و خطای ثبتشده در افزونه را هم ببینید.
اگر مشکل بعد از نصب افزونه شروع شده است، در یک نسخه آزمایشی آن را موقتاً خاموش و دوباره همان کار را امتحان کنید. پیش از دستکاری سایت اصلی نسخه پشتیبان سالم داشته باشید. صرف افزایش
max_execution_time یا زمان انتظار وبسرور میتواند خطای دیگری را پنهان کند و در هاست اشتراکی ممکن است اختیار تغییر همه لایهها را نداشته باشید.نمونه درونریزی محصولات
اگر فایل ۱۰۰۰ ردیفی هنگام درونریزی 504 میدهد، ابتدا فهرست محصولات را ببینید تا ردیفهایی را که احتمالاً وارد شدهاند دوباره ثبت نکنید. در نسخه آزمایشی، یک فایل کوچک با مثلاً ۵۰ ردیف بسازید و وارد کنید. تعداد نتیجه را با فایل مقایسه کنید؛ اگر درست است، اندازه بخش بعدی را با توجه به زمان اجرا انتخاب کنید. اگر حتی فایل کوچک هم 504 میدهد، زمان و شناسه اجرای آزمایشی را برای یافتن خطای همان درخواست نگه دارید؛ بزرگکردن همه زمانهای انتظار قدم اول نیست.
برای رفع دقیق چه اطلاعاتی لازم است؟
ساعت، نشانی صفحه، نوع کار، مدت تقریبی انتظار و اینکه آیا کار واقعاً ثبت شده است را یادداشت کنید. گزارش PHP و وبسرور همان بازه را برای پیامهایی مثل timeout و خطای ارتباط با سرویس بیرونی بررسی کنید یا به پشتیبانی بسپارید. اگر از CDN استفاده میکنید، نوع صفحه خطا و شناسه درخواست آن را هم ارسال کنید؛ منبع خطا همیشه از روی ظاهر به تنهایی قطعی نیست.
راهنمای رسمی: خطاهای 502 و 504 در Cloudflare.
برچسبها:
اشتراکگذاری:
لینکدینتلگرامایکس
مقاله قبلی
حلقه فوروارد ایمیل چیست؟ رفع پیام Too Many Hops
۱۰ آبان ۱۴۰۵مقاله بعدی
دیدگاهها (۰)
دیدگاههای تاییدشده و پاسخهای تیم نتآرام
