mod_pagespeed

CentOS’a mod_pagespeed Kurma

Merhaba arkadaşlar,

Öncelikle mod_pagespeed nedir, faydaları nelerdir, neler yapar sorularının cevaplarını vermekle başlayalım.

mod_pagespeed nedir?

mod_pagespeed açık kaynak kodlu bir Apache modülüdür. Bu modül web sayfalarınızı ve web sayfalarınızda kullanılan kaynakları otomatik olarak optimize eder. Özellikle kullanılan bu kaynakları yeniden yazarak onların en iyi performansı sağlayacakları şekilde değiştirilir. Webmasterlar ve web geliştiricileri içeriklerini Apache HTTP Sunucusu ile sunuyorlarsa mod_pagespeed‘i rahatlıkla kullanabilirler.

mod_pagespeed bir çok filtreye sahiptir. Bu filtreler sayesinde JavaScript, HTML ve CSS dosyalarınızı en iyi şekilde optimize edere son kullanıcıya gönderir. Ayrıca JPEG ve PNG resim dosyalarını optimize etme yeteneğine sahiptir. Bu filtrelerin temelinde en iyi web performans artırım uygulamaları yer almaktadır.

mod_pagespeed ile dosyalarınızı gzip sıkıştırma ile sıkıştırabilir, fazla yorum satırlarını kaldırabilir, resimlerinizi optimize edebilir ve bütün dosyalarınızın bu yeni hallerini önbellekleyip sunucuya kaydeder. Bir sonraki seferde sunucudan alır bu dosyaları.

Faydaları nelerdir?

  1. Sayfalarınızın HTML çıktılarını gzip yöntemi ile sıkıştırır.
  2. Bütün JavaScript ve CSS dosyalarınızı gzip yöntemi ile sıkıştırır.
  3. Mümkün olursa eğer bütün javascript dosyalarınızı tek bir dosyada, bütün CSS dosyalarınızı tek bir dosya da toplamaya çalışır.
  4. JavaScript ve CSS dosyalarınızdaki ekstra yorum satırlarını veya boşlukları siler.
  5. Jpeg, png formatlı resimlerinizi optimize eder. Bu optimizasyon sayesinde resimleriniz kaliteleri korunarak sıkıştırılır. Daha küçük resimler elde edersiniz.
  6. Bu işlemleri yapar ve ilgili işlemler sonucu oluşan yeni dosyaları önbellekte saklar ve daha sonra önbellekten çeker. Her seferin aynı işlemleri tekrarlayarak sunucuya yük bindirmez.
  7. Sizde kullanıcılarınıza muhteşem hızlı web sayfaları sunarsınız.

mod_pagespeed kurulumu

Bu kurulumu CentOS 5.5’de denedim. Diğer sistemlerde aynı sonucu verip vermeyeceğinin garantisini veremiyorum ne yazık ki.

Öncelikle SSH ile sunucunuza bağlanın. Daha sonra aşağıdaki komutla sunucumuza Google Code‘dan mod_pagespeed 0.10.21.2 sürümümüzü indirelim:

wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_i386.rpm

Sıradaki aşamada Google anahtarını RPM’nin içine aktarıyoruz aşağıdaki komutla(bu aşamayı yapmanıza gerek olmayabilir):

 wget https://dl-ssl.google.com/linux/linux_signing_key.pub
rpm --import linux_signing_key.pub

Yukarıdaki adımı uygulamadan önce isterseniz direkt RPM veya YUM komutu ile kurulum yapabilirsiniz fakat yukarıdaki komutu çalıştırmadan deneyen bir çok kişi aşağıdaki hata ile karşılaşmışlar:

warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 7fac5991
Public key for mod-pagespeed-beta_current_i386.rpm is not installed

Ben karşılaşmadım. Şimdi dosyamızı sunucuya indirdik. Artık kuruluma geçebiliriz. Kurulum için aşağıdaki komutu yazıyoruz:

[root@localhost ~]# yum localinstall mod-pagespeed-beta_current_i386.rpm

Vee kurulum başlıyor…

Loaded plugins: fastestmirror, priorities
Setting up Local Package Process
Examining mod-pagespeed-beta_current_i386.rpm: mod-pagespeed-beta-0.9.1.1-171.i386
Marking mod-pagespeed-beta_current_i386.rpm to be installed
Loading mirror speeds from cached hostfile
 * addons: mirrors.gitam.edu
 * base: mirrors.gitam.edu
 * epel: bali.idrepo.or.id
 * extras: mirrors.gitam.edu
 * ius: mirror.its.dal.ca
 * updates: mirrors.gitam.edu
Resolving Dependencies
--> Running transaction check
---> Package mod-pagespeed-beta.i386 0:0.9.1.1-171 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package             Arch  Version      Repository                         Size
================================================================================
Installing:
 mod-pagespeed-beta  i386  0.9.1.1-171  /mod-pagespeed-beta_current_i386  1.5 M

Transaction Summary
================================================================================
Install       1 Package(s)
Upgrade       0 Package(s)

Total size: 1.5 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : mod-pagespeed-beta                                       1/1
job 1 at 2010-11-09 09:11

Installed:
  mod-pagespeed-beta.i386 0:0.9.1.1-171

Complete!

Kurulum bitti! Bu aşamadan sonra Apache’yi yeniden başlatmak en mantıklısı olacaktır.

/etc/init.d/httpd restart

Gelelim ayar dosyasına. Ayar dosyasının yeri etc/httpd/conf.d/pagespeed.conf şeklindedir. Benim favori ayarlarımı paylaşmadan önce sizlere gerekli bütün ayarların bulunduğu sayfanın adresini vereyim. Ayar için gerekli bilgilere bu sayfadan ulaşabilirsiniz.

Benim favori ayarlarım aşağıdaki gibidir(pagespeed.conf dosyam aynı zamanda):

LoadModule pagespeed_module /usr/lib64/httpd/modules/mod_pagespeed.so

<IfModule !mod_deflate.c>
 LoadModule deflate_module /usr/lib64/httpd/modules/mod_deflate.so
</IfModule>
<IfModule pagespeed_module>
 SetOutputFilter MOD_PAGESPEED_OUTPUT_FILTER

// "on" ile modülü açıyoruz. "off" ile kapatıyoruz.
ModPagespeed on

# Önbellek klasörlerinin yerini belirtiriyorum
# Bu klasörler Apache tarafından yazılabilir olmalıdır
ModPagespeedFileCachePath "/var/www/mod_pagespeedcache/"
ModPagespeedGeneratedFilePrefix "/var/www/mod_pagespeedfiles/"

# mod_pagespeed'in 3 adet yeniden yazma seviyesi var. Bu seviyeler
# PassThrough, CoreFilters ve TestingCoreFilters.
ModPagespeedRewriteLevel CoreFilters

# Aslında bu kadarla sınırlı değil fakat diğerleri kendiliğinden aktif olarak çalışıyor..
ModPagespeedEnableFilters collapse_whitespace
 ModPagespeedEnableFilters combine_javascript
 ModPagespeedEnableFilters remove_comments
 ModPagespeedEnableFilters defer_javascript

 ModPagespeedRespectVary on

</IfModule>

mod_pagespeed kurulumu bu kadardır arkadaşlar. Sorularınızı forumdan veya yorum ile sorabilirsiniz.

İyi günler,

Post Author: Oral ÜNAL

Web geliştirmeyi başta meslek olarak hayal eden fakat daha sonra bir hobi haline getiren birisiyim işte.

CentOS’a mod_pagespeed Kurma” için 4 yorum

  • erend

    (06 Kasım 2012 - 03:44)

    Güzel bir yazı olmuş. Teşeşekkür etmek istedim. Ancak bir surm var düşüncenizi bilmek isterim.
    Sorum şöyle:

    mod_pagespeed ile x-cache ve benzeri hızlandırıcılarla aralarındaki fark nedir, işlevleri farklı mıdır? mod_pagespeed ve diğer hızlandırıcılar Apache de aynı anda kurar isek sorun olur mu yada bunları kurabilir miyiyiz?

    Teşekkürler. eline sağlık.

    • Oral ÜNAL

      (06 Kasım 2012 - 12:40)

      Bu tarz hızlandırıcılar birbirleriyle uyumlu çalışmıyorlar ne yazık ki. En azından benim bildiğim çalışmıyor. Ben daha önce nginx ile beraber çalıştırmaya çalıştım fakat çalışmadılar. Daha sonra mod_pagespeed kurup hızları test ettim, nginx ile hızları test ettim ve mod_pagespeed çok daha iyi bir performansa sahip olduğunu gördüm.

      Tekrar söylemek gerekirse sorun oluyor nerdeyse

  • Ahmet

    (04 Mart 2013 - 03:55)

    Merhaba hocam anlatımınız için teşekkür ederim.

    Nginx ile çalışmadı demişsiniz. Apache ile Nginx’i proxy olarak kullanarak mı denediniz yani?

    Hani Apache modüllerini kullanarak nginx kullanıyoruz ya ondan mı bahsettiniz yani..

    Mod_rewrite, mod_deflate’yi bu şekilde zaten nginx apache ile birlikte kullanıyoruz, ben de deneyeceğim ama çalışır diye umut etmiştim…

  • Umut

    (15 Temmuz 2014 - 16:03)

    Anlatım için teşekkürler.

    Mod_pagespeed kurulumundan sonra mod_deflate yi pasif ediyor muyuz?

Yorum yazma sırası sizde!