Apache Söndür / Gzip vs PHP ob_start () ile içeriği sıkıştırarak?

1 Cevap php

Çoğu site bant genişliği tasarrufu için kendi içeriğini sıkıştırmak istiyorum. with PHP veya apache ile - bu PHP çalışan sunucuları apache gelince Ancak, bunu yapmak için iki yol vardır. Yani hangisinin sunucu üzerinde daha hızlı veya daha kolay?

Örneğin, PHP bunu etkinleştirmek için benim sayfaların başında aşağıdaki işlevi çalıştırın:

/**
 * Gzip compress page output
 * Original function came from wordpress.org
 */
function gzip_compression() {

    //If no encoding was given - then it must not be able to accept gzip pages
    if( empty($_SERVER['HTTP_ACCEPT_ENCODING']) ) { return false; }

    //If zlib is not ALREADY compressing the page - and ob_gzhandler is set
    if (( ini_get('zlib.output_compression') == 'On'
    	OR ini_get('zlib.output_compression_level') > 0 )
    	OR ini_get('output_handler') == 'ob_gzhandler' ) {
    	return false;
    }

    //Else if zlib is loaded start the compression.
    if ( extension_loaded( 'zlib' ) AND (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE) ) {
    	ob_start('ob_gzhandler');
    }

}

other option Apache'den deflate or gzip kullanmaktır (her ikisi de olan very close). Onları etkinleştirmek için size. Htaccess dosyasına böyle bir şey ekleyebilirsiniz.

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php

PHP (PHP ile yüklenmesi gerekir) bir betik dili olduğu I) apache yöntemi 1 olacağını daha istikrarlı varsayalım ve 2) daha hızlı olacaktır. Ama varsayımlar gerçek dünyada çok kullanmak zorunda değilsiniz.

Tüm bunlardan sonra, büyük mali destek pencereler ile ... uh, biz oraya gitmek olmaz olduğunu zannedebilir.

1 Cevap

Biz 60M/uniques/day taşıma, ... webserverların çok koşuyoruz. Normalde bu kayda değer değil ama soru deneyime dayalı görünüyor.

Biz apache bunu yapıyor çalıştırın. Ne diğer ucundan çıkıyor olursa olsun seçtiğiniz yöntem aynı (ya da önemli değil şekilde yeterince yakın) olduğunu.

Biz birkaç nedenden için apache tercih:

  • Sıfır bakım, biz sadece bunu açık. Hiç kimse bazı vaka yapısını korumak gerekiyor
  • Performans, Apache yaptım bizim testleri sunucularında çalışma marjinal daha iyi sonuç aldı.
  • Sadece PHP aksine, Apache, her şeyi çıkış filtresi geçerli olacaktır. Bazı durumlarda aynı sunucuda sunulmakta diğer içerik türleri vardır, bizim. Css ve sıkıştırmak istiyorum. Js

Bir sözcük uyarı, bazı tarayıcılar veya diğer uygulamalar kasıtlı sıkıştırma destekleniyor belirten müşteri başlıklarını bozmak. Bazı istemci tarafı güvenliği (Norton Internet Security ve bu gibi düşünce uygulamaları) açısından onların işini kolaylaştırmak için bunu. Bu göz ardı ya da (tarayıcılar uygulama veya vekil sadece kendi hayatını kolaylaştırmak için futzed, bunu destekleyecek mi) normal bakmaya isteklerini yeniden yazmak için ekstra durumlarda eklemeyi deneyebilirsiniz ya.

Alternatif olarak, daha önce tarayıcıya çıktı göndermek için floş () komutunu kullanarak konum ve kompresyon uygulayarak eğer erken veri göndermek için sunucu ikna pedi boşlukla ile dize sonuna gerekebilir.