0VPS ajustes para melhorar o desempenho web

Embora eu não tenha escrito muitos novos artigos recentemente eu passei um tempo considerável atualizando e revisando o lado por trás das cenas de coisas, ou seja, vários segurança (TLS) configurações no meu VPS que hospeda vários sites, incluindo este. Outra coisa que eu também tenho trabalhado para melhorar recentemente é melhorar meu uso de gzip, e um novo formato chamado brotli

Resumidamente, gzip (e brotli) pode ser usado para compactar recursos antes de serem enviados ao navegador, o que reduz a quantidade de dados enviados, e, portanto, deve significar que um site carrega mais rápido. A desvantagem é que a compactação de recursos leva tempo, que poderiam superar os ganhos dos tamanhos menores. A solução ideal é ter recursos previamente compactados, em vez de compactado pelo servidor http em tempo real. A maioria dos meus sites usa wordpress que contém muitos arquivos em plugins, temas etc, então passar por tudo isso e comprimi-los manualmente toda vez que houver uma atualização seria impraticável. A resposta é usar um script que monitore o sistema quanto a alterações de arquivos, e cria arquivos compactados conforme necessário. Abaixo está o script que escrevi recentemente para fazer exatamente isso.

#!/bin/bash                               

inotifywait -m -q -e CREATE -e MODIFY -e MOVED_TO -r "/var / www /" --formato "%w% f" -- Excludei'.(jpg|png|gif|ico|registro|sql|zip|gz|pdf|php|swf|ttf|EOT|woff|cst|JST|br|cts)$' |
while read file
do
if [[ $file = ~ \.(css)$ ]];
then
fname="${Arquivo%.*}"
se [ -f "$fname".min.css ]
then
rm -f $file.gz
rm -f $file.br
zopfli --gzip $file
bro --quality 11 --input $file --output $file.br
chmod 664 $file.br
chmod 664 $file.gz
chown wordpress:wordpress $file.br
chown wordpress:wordpress $file.gz
else
rm -f $file.gz
rm -f $file.br
cat $file | cleancss > $fname.cst
cat $file | cleancss | bro --Quality 11 --output $file.br
zopfli --gzip $fname.cst -c > $fname.css.gz
chmod 664 $file.br
chmod 664 $file.gz
chown wordpress:wordpress $file.br
chown wordpress:wordpress $file.gz
rm -f $fname.cst
fi
fi

if [[ $file = ~ \.(js)$ ]];
then
fname="${Arquivo%.*}"
se [ -f "$fname".min.css ]
then
rm -f $file.gz
rm -f $file.br
zopfli --gzip $file
bro --quality 11 --input $file --output $file.br
chmod 664 $file.br
chmod 664 $file.gz
chown wordpress:wordpress $file.br
chown wordpress:wordpress $file.gz
else
rm -f $file.gz
rm -f $file.br
uglifyjs $fname.js > $fname.jst
zopfli --gzip $fname.jst -c > $fname.js.gz
bro --quality 11 --input $fname.jst --output $file.br
chmod 664 $file.br
chmod 664 $file.gz
chown wordpress:wordpress $file.br
chown wordpress:wordpress $file.gz
rm -f $fname.jst
fi
fi

origfs=$(wc -c < "$arquivo")
gzfs = $(wc -c <"$arq.gz")
BRFS = $(wc -c <"$file.br")

se [ "$origfs" -lt "$gzfs" ];
then
rm $file.gz -f
fi
if [ "$origfs" -lt "$BRFS" ];
then
rm $file.br -f
fi

done

Deixe uma resposta