افزایش سرعت سایت با gzip

در اين بخش مي‌توانيد در مورد تمامي مسائل و موضوعات مرتبط با طراحي صفحات اينترنتي به بحث بپردازيد

مدیران انجمن: Mahdi Mahdavi, شوراي نظارت

ارسال پست
Captain II
Captain II
نمایه کاربر
پست: 730
تاریخ عضویت: پنج شنبه 8 اسفند 1387, 1:21 am
سپاس‌های ارسالی: 4039 بار
سپاس‌های دریافتی: 2781 بار
تماس:

افزایش سرعت سایت با gzip

پست توسط Erratic » پنج شنبه 13 آبان 1395, 6:02 pm

 تصویر
 

افزایش سرعت سایت با gzip
gzip چیست؟
یک الگوریتم موثر در جهت افزایش و بهبود سرعت سایت جی زیپ است. این الگوریتم محتویات سایت شما را به صورت فشرده نموده و به مرورگر میفرستد. بنابراین حجم اطلاعات سایت شما در هنگام ارسال به مرورگر کاربر کاهش یافته و باعث افزایش سرعت بارگذاری سایت میشود.
این الگوریتم در حال حاضر یکی از موثرترین روش ها جهت افزایش سرعت سایت و یکی از فاکتورهای مهم سئو تلقی میگردد.
استفاده از gzip
جهت استفاده از این قابلیت تنها کافیست که کدهای زیر را به فایل .htaccess سایت خود واقع در پوشه public_html اضافه کنید

کد: انتخاب همه

<IfModule mod_expires.c>
    ExpiresActive on

    ExpiresByType image/jpg "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType font/ttf "access plus 1 month"
    ExpiresByType font/otf "access plus 1 month"
    ExpiresByType text/html "access plus 1 month"
    ExpiresByType font/opentype "access plus 1 month"
    ExpiresByType application/x-javascript "access plus 1 month"
</IfModule>


همپنین بنابر نیاز میتوانید از دستورات زیر نیز جهت فشرده سازی محتویات سایت خود در کد بالا استفاده کنید. کافیست یک خط را کپی نموده و در مقابل عبارت ExpiresByType گزینه های زیر را همچون نمونه بالا اضافه کنید

کد: انتخاب همه

application/javascript
application/rss+xml
application/vnd.ms-fontobject
application/x-font
application/x-font-opentype
application/x-font-otf
application/x-font-truetype
application/x-javascript
application/x-font-ttf
text/xml
text/plain
text/javascript
text/html
image/x-icon
text/css
image/svg+xml
font/ttf
font/otf
font/opentype
application/xml
application/xhtml+xml


[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]
 [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید][لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید] 

Major II
Major II
پست: 469
تاریخ عضویت: یک شنبه 6 تیر 1389, 8:04 pm
محل اقامت: تربت حیدریه
سپاس‌های ارسالی: 102 بار
سپاس‌های دریافتی: 568 بار
تماس:

Re: افزایش سرعت سایت با gzip

پست توسط IrIsT » جمعه 14 آبان 1395, 10:00 am

با سلام و درود.
تشکر از شما از متن مفیدتون.
دیروز داشتم سرور کانفیگ میکردم یک نکته رو باید عرض کنم.
در نص سرور و کنترل پنل,بعضی وقتها باید gzip و deflate رو نصب کرد.میتونید پکیج gzip رو از سورس نصب کنید و حتی میتونید با yum install gzip نصب کنید
همچنین deflate هم در کمپایل اگه در دایرکت ادمین باشه,استفاده میشه

این سایت هم برای چک کردن Gzip که نشون میده انجام شده یا نه و چند درصد تاثیر گذاره :

[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]

با تشکر.
[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]
[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]
[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]
[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید] 

[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]

  تلگرام : [url]@AmirAm67[/url] - ایمیل : iedb.team@gmail.com 

Captain II
Captain II
نمایه کاربر
پست: 730
تاریخ عضویت: پنج شنبه 8 اسفند 1387, 1:21 am
سپاس‌های ارسالی: 4039 بار
سپاس‌های دریافتی: 2781 بار
تماس:

Re: افزایش سرعت سایت با gzip

پست توسط Erratic » جمعه 14 آبان 1395, 5:32 pm

IrIsT نوشته شده:[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]


تشکر از شما دوست عزیز بابت توضیحاتتون. همچنین سایت خوبی معرفی کردید
در کنارش یک سایت دیگه برای آنلایز کامل سرعت و سئو و سایر مشخصه های یک وبسایت:

کد: انتخاب همه

gtmetrix.com
 [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید][لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید] 

Colonel II
Colonel II
نمایه کاربر
پست: 3473
تاریخ عضویت: جمعه 20 اردیبهشت 1387, 9:44 am
سپاس‌های ارسالی: 5880 بار
سپاس‌های دریافتی: 12410 بار
تماس:

Re: افزایش سرعت سایت با gzip

پست توسط Solver » شنبه 15 آبان 1395, 11:39 am

Erratic, جان، شما gzip را درست تعریف کردید اما رول هایی که برای استفاده از اون گذاشتید ارتباطی با gzip ندارد !

این رول ها مربوط به کش سمت کلاینت هستند که دوره اعتبار فایل ها را به نسبت پسوندها به مرورگر کلاینت معرفی می کند. مثلا:

کد: انتخاب همه

    ExpiresByType image/jpg "access plus 1 month"


می گوید که پسوند jpg دریافتی زیر سایه این فایل htaccess را مرورگر کاربر میتواند برای مدت 1 ماه کش کند و سپس مجدد درخواست نسخه جدید از سرور بدهد. نتیجه آن هم این است که در دفعات بعدی لود این فایل دیگر فایل از سرور منتقل نشده و از کش مرورگر کاربر خوانده خواهد شد.

از بحث اصلی خارج نشویم، جهت فعال سازی gzip، همانطور که    گفتند بایدن نخست این قابلیت روی سرور (یا بهتر است گفت وب سرور ما) نصب بوده باشد که اکثر هاستینگ های اشتراکی این قابلیت را فعال کرده اند. اکثر وب سرورها ابزارهای خوبی برای اینکار دارند و تقریبا تمامی مرورگر ها هم پشتیبانی کامل ازش می کنند.

در آپاچی ما 2 تا متد فشرده سازی محتوا داریم:

mod_deflate که متد استاندارد و ساده تری هست استفاده ازش.
mod_gzip که متد پیشرفته تر هست و البته به مراتب نتیجه مطلوب تری هم ارائه می کند با مصرف منابع بیشتر در سمت سرور.

برای mod_gzip،رول های زیر را وارد htaccess کنید:

کد: انتخاب همه

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>


برای mod_deflate هم رول های زیر را وارد کنید: (امکان استفاده همزمان از هر دو مود برای یک گروه پسوند وجود ندارد)

کد: انتخاب همه

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript


اگر کلا امکان ویرایش فایل htaccess را نداشته باشید میتونید با کد زیر در header فایل های php خود از فشرده سازی استفاده کنید:

کد: انتخاب همه

<?php if (substr_count($_SERVER[‘HTTP_ACCEPT_ENCODING’], ‘gzip’)) ob_start(“ob_gzhandler”); else ob_start(); ?>



برای وب سرور NGINX در فایل تنظیمات کلی یا سفارشی:

کد: انتخاب همه

gzip on;
gzip_comp_level 2;
gzip_http_version 1.0;
gzip_proxied any;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

# Disable for IE < 6 because there are some known problems
gzip_disable "MSIE [1-6].(?!.*SV1)";

# Add a vary header for downstream proxies to avoid sending cached gzipped files to IE6
gzip_vary on;


برای وب سرور litespeed در قسمت تنظیمات tuning و در اونجا تیک enable compression را باید زد.

برای وب سرور IIS نیز از بخش تنظیمات میتونید اعمالش کنید مطابق این دستور العمل:
[لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]


در کل بیشترین تاثیر gzip روی فایل های css و html است که اگر به صورت آبشاری و minify نشده باشند این فایل ها تا 50% ممکن است کاهش حجم داشته باشد که موجب صرفه جویی در پهنای باند سمت سرور و کلاینت خواهد شد در کنار افزایش سرعت.

مدیران سرور دقت داشته باشند، هر چقدر فشرده سازی در پهنای باند سرور صرفه جویی میکند، به همان اندازه در لود سرور و مصرف CPU شما اثرات منفی دارد. بنابراین برای سایت های پر ترافیک توصیه میشود که به صورت دستی یا با کمک ماژول ها تا اونجا که میشه فایل ها را minify کرده و از سیستم های کش سمت سرور برای ذخیره نسخه فشرده شده استفاده کرد تا از compression on the fly توسط پردازنده پرهیز شود.
Personal Site: [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]

Captain II
Captain II
نمایه کاربر
پست: 730
تاریخ عضویت: پنج شنبه 8 اسفند 1387, 1:21 am
سپاس‌های ارسالی: 4039 بار
سپاس‌های دریافتی: 2781 بار
تماس:

Re: افزایش سرعت سایت با gzip

پست توسط Erratic » شنبه 15 آبان 1395, 2:24 pm

سلام جناب Solver, متشکر از شما و توضیحاتتون،

کدی که من قرار دادم نوعی کش هستش و شما جی زیپ رو کامل معرفی کردید.

کد قرار داده شما

کد: انتخاب همه

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>


در کنار این کد

کد: انتخاب همه

<IfModule mod_expires.c>
    ExpiresActive on

    ExpiresByType image/jpg "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
    ExpiresByType text/css "access plus 1 month"
    ExpiresByType application/javascript "access plus 1 month"
    ExpiresByType application/x-javascript "access plus 1 month"
</IfModule>


قرار دادم و نتیجه مطلوب رو گرفتم
 [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید][لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید] 

ارسال پست

بازگشت به “طراحي صفحات اينترنتي”