فعالسازی gzip و brotli برای کاهش حجم صفحات
فشردهسازی پاسخها زمان بارگذاری را کم میکند؛ تنظیم درست آن برای HTML/CSS/JS ضروری است.
آخرین بهروزرسانی: ۲۸ مهر ۱۴۰۵ · زمان مطالعه: حدود 3 دقیقه · سطح: کاربردی
- فعالسازی gzip و brotli برای کاهش حجم صفحات
- وضعیت فعلی فشردهسازی را تست کنید
- قبل و بعد را اندازه بگیرید
چرا این موضوع مهم است؟
موضوع Performance یکی از پایههای نگهداری سرور است. رعایت آن باعث پایداری بیشتر، کاهش ریسک امنیتی و صرفهجویی در زمان پشتیبانی میشود.
قبل از شروع، از پیکربندی فعلی و دادههای مهم نسخه پشتیبان بگیرید تا در صورت نیاز بتوانید به وضعیت قبل برگردید.
پیشنیازها
- دسترسی SSH با کاربر root یا کاربر دارای sudo
- Ubuntu 22.04/24.04 یا Debian 12 (سازگاری با توزیعهای مشابه)
- نسخه پشتیبان از فایلها و دیتابیسهای مهم
راهنمای گامبهگام
گام 1 — وضعیت فعلی فشردهسازی را تست کنید
وضعیت فعلی فشردهسازی را تست کنید. این کار را در بازه کمترافیک انجام دهید و در صورت نیاز کاربران را از قبل مطلع کنید.
گام 2 — gzip را برای انواع متنی فعال کنید
gzip را برای انواع متنی فعال کنید. این مرحله را با دقت انجام دهید و خروجی دستور را بررسی کنید تا از اعمال درست تغییرات مطمئن شوید.
گام 3 — در صورت پشتیبانی brotli را اضافه کنید
در صورت پشتیبانی brotli را اضافه کنید. پس از اجرا، وضعیت سرویس و لاگها را کنترل کنید؛ تغییر بدون بررسی میتواند خطای پنهان ایجاد کند.
گام 4 — فایلهای تصویری را از فشردهسازی خارج کنید
فایلهای تصویری را از فشردهسازی خارج کنید. اگر روی چند سرور کار میکنید، این مورد را یکبار روی محیط تست اجرا و سپس روی تولید اعمال کنید.
گام 5 — هدر Content-Encoding را بررسی کنید
هدر Content-Encoding را بررسی کنید. مقدارهای نمونه را با اطلاعات واقعی سرور خود جایگزین کنید و از اجرای دستور با مقادیر پیشفرض پرهیز کنید.
گام 6 — قبل و بعد را اندازه بگیرید
قبل و بعد را اندازه بگیرید. برای اطمینان، نتیجه را از یک مسیر دوم (مرورگر، کلاینت یا ابزار مانیتورینگ) هم بررسی کنید.
نمونه دستورها
gzip on;
gzip_types text/plain text/css application/javascript application/json image/svg+xml;
brotli on;
brotli_types text/css application/javascript application/json;نکات امنیتی و بهینهسازی
- تغییرات را مستند کنید تا در آینده یا هنگام تحویل به تیم دیگر قابل پیگیری باشد.
- رمزها و کلیدها را در فایلهای محافظتشده نگه دارید و هرگز در کد یا مخزن عمومی قرار ندهید.
- لاگها را پایش کنید تا رفتار غیرعادی زودتر شناسایی شود.
خطاهای رایج و راهحل
- اگر مطمئن نیستید، تغییر را در محیط تست تکرار کنید و لاگ کامل را برای پشتیبانی بفرستید.
- اگر تغییرات اعمال نشد، کش مرورگر/برنامه و نیاز به reload یا restart را بررسی کنید.
- اگر مطمئن نیستید، تغییر را در محیط تست تکرار کنید و لاگ کامل را برای پشتیبانی بفرستید.
سؤالات متداول
Brotli همیشه بهتر است؟
در HTTPS و مرورگرهای مدرن معمولاً بله، اما باید ماژول آن در Nginx فعال باشد.
چطور تست کنم؟
با curl -H "Accept-Encoding: gzip" -I و بررسی هدر Content-Encoding.
میلاد سرور پلنهای اقتصادی سرور مجازی ایران و سرور مجازی آلمان را با آیپی اختصاصی و قیمت شفاف ارائه میکند. برای مقایسه همه کشورها فهرست کامل سرورهای بینالملل را ببینید.
جمعبندی
این آموزش را یکبار روی محیط تست تمرین کنید تا در تولید با اطمینان بیشتری اجرا شود.