Nginx html çıktısını otomatik küçült


12

Herkes anında html çıktısını en aza indirmek için nginx (veya başka bir yöntem) almak için bir yol biliyor mu? Bana kolay geliyor ve birkaç kb'yi tıraş edebilir ve siteyi hızlandırmaya yardımcı olabilir.


3
Bu özelliğe sahip bir uzantıdan emin değilim, ama buna değer mi? Her istek üzerinde bir CPU etkisi olacaktır, yani yükünüz arttıkça web sitenizin daha fazla CPU'ya ihtiyacı olacaktır. Metni göndermeden önce sıkıştırmak için zaten gzip uzantısını kullandığınızı varsayıyorum, bu nedenle tüm boşluklar bu sürecin bir parçası olarak kaldırılacak. Ayrıca, her istekte CPU zamanından tasarruf edecek dosyalarınızı önceden gzzleyebilirsiniz.
Andrew Taylor

@AndrewTaylor, bu yüzden daha sonra önbelleğe almanız daha iyi olur.
poige

Yanıtlar:


2

Nginx için Google Pagespeed , küçültme ve bir sürü başka şey yapar. Ancak karşılaştırdığımda, sitemin zaten iyi optimize edilmiş olduğu göz önüne alındığında, rahatsız etmek için yeterli bir fark yaratmadı. Zaten optimize edilmemiş siteler için büyük olasılıkla önemli bir fark yaratacaktır.

Burada Nginx / Pagespeed'i nasıl çalıştıracağınıza dair bir eğitim var . Kaynaktan inşa etmelisin. Bağlantılı web sitesini güncel tutma eğilimindeyim, eğer o bölgeye dokunursam, bu yüzden aşağıdaki bu cevaptan daha güncel olabilir.

cd /home/ec2-user
mkdir nginx-build
cd nginx-build
service nginx stop
yum groupinstall "Development Tools"
yum install pcre-devel zlib-devel openssl-devel
wget http://nginx.org/download/nginx-1.9.11.tar.gz
wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
wget https://github.com/openresty/headers-more-nginx-module/archive/v0.29.tar.gz
tar -xzf nginx-1.9.11.tar.gz
tar -xzf ngx_cache_purge-2.3.tar.gz
tar -xzf v0.29.tar.gz
tar -xzf 1.9.32.10.tar.gz    # Google Pagespeed, optional
ngx_version=1.9.32.10
wget https://github.com/pagespeed/ngx_pagespeed/archive/release-${ngx_version}-beta.zip   # Google Pagespeed, optional
cd ngx_pagespeed-release-1.9.32.10-beta   # Google Pagespeed, optional
wget https://dl.google.com/dl/page-speed/psol/${ngx_version}.tar.gz   # Google Pagespeed, optional
cd ../nginx-1.9.9
# Note that I have no idea what the next line does but it was in the official guide
PS_NGX_EXTRA_FLAGS="--with-cc=/opt/rh/devtoolset-2/root/usr/bin/gcc"
# Safe option, slower, lots of modules included
./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_v2_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' --add-module=/tmp/ngx_cache_purge-2.3 --add-module=/tmp/headers-more-nginx-module-0.29 --with-http_realip_module --add-modeule=../ngx_pagespeed-release-1.9.32.10-beta
make && make install
make clean  (NB: optional)
service nginx start

12

Benim tavsiyem: küçültmeyi ve gzip modülünü kullanmayı unutma . Daha iyi çalışacak ve aynı hedefe ulaşacaktır. Ancak, elbette, bunu yapabilirsiniz. Bir var şerit adlı 3. parti modül özellikle bu konu için.


Örnek gzip Yapılandırması:

# Context:  http, server, location

    gzip            on;
    gzip_min_length 1000;
    gzip_proxied    expired no-cache no-store private auth;
    gzip_types      text/plain application/xml;

2
İyi bulmak. Üretime hazır görünmüyor, bu yüzden gzip kullanma önerinizi ikinci olarak - HTML'yi küçültmekten çok daha fazla tasarruf sağlıyor.
pjmorse

1
Biraz daha eklemeyi unutmayın gzip_typesgibi text/html.
Gerald

TLS / SSL altındaki HTML sayfalarının gzip sıkıştırmasının BREACH'e karşı savunmasız olabileceğini unutmayın .
Naglis
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.