Nginx auto minify output html


12

apakah ada yang tahu cara untuk mendapatkan nginx (atau metode lain) untuk meminimalkan output html dengan cepat? Tampaknya mudah bagi saya dan dapat mencukur beberapa kb dan membantu mempercepat situs.


3
Saya tidak yakin dengan ekstensi yang memiliki kemampuan ini, tetapi, apakah itu layak? Akan ada dampak CPU pada setiap permintaan, itu berarti situs web Anda akan membutuhkan lebih banyak CPU saat beban Anda meningkat. Saya berasumsi Anda sudah menggunakan ekstensi gzip untuk mengompresi teks sebelum Anda mengirimnya, jadi, semua spasi putih akan dihapus sebagai bagian dari proses itu. Anda juga dapat melakukan pre-gz file Anda, yang akan menghemat waktu CPU pada setiap permintaan.
Andrew Taylor

@AndrewTaylor, jadi itu sebabnya Anda sebaiknya menyimpannya setelah itu.
poige

Jawaban:


2

Google Pagespeed untuk Nginx melakukan minification, dan banyak hal lainnya. Namun ketika saya melakukan benchmark, itu tidak membuat banyak perbedaan untuk diganggu, mengingat situs saya sudah dioptimalkan dengan baik. Untuk situs yang belum dioptimalkan mungkin akan membuat perbedaan yang signifikan.

Ada tutorial tentang cara membuat Nginx / Pagespeed bekerja di sini . Anda harus membuatnya dari sumber. Saya cenderung terus memperbarui situs web tertaut, jika saya menyentuh area itu, jadi mungkin lebih terkini daripada jawaban di bawah ini.

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

Rekomendasi saya: lupakan minify dan gunakan modul gzip . Ini akan bekerja lebih baik dan mencapai tujuan yang sama. Tetapi, tentu saja, Anda bisa melakukannya. Ada modul pihak ke - 3 bernama strip , terutama untuk topik ini.


Contoh Konfigurasi gzip:

# 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
Bagus temukan. Namun, tampaknya tidak siap untuk produksi, jadi saya sarankan Anda untuk menggunakan gzip - menghemat lebih banyak daripada memperkecil HTML.
pjmorse

1
Jangan lupa menambahkan lagi gzip_typesseperti text/html.
Gerald

Perhatikan bahwa kompresi gzip halaman HTML di bawah TLS / SSL mungkin rentan terhadap BREACH .
Naglis
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.