Настройване на gzip на Nginx на CentOS 7

Оферта от 8host.com

nginx

Скоростта на зареждане на уебсайта зависи от размера на всички файлове, които браузърът трябва да зареди. Чрез намаляване на размера на файла можете значително да ускорите зареждането на страницата.

gzip е популярна програма за компресиране на данни. Уеб сървърът Nginx може да бъде конфигуриран да поддържа gzip. Компресираните файлове ще бъдат допълнително декомпресирани от браузъра. По този начин количеството данни, прехвърлени между уеб сървъра и браузъра, може да бъде намалено.

Някои файлове се компресират по-добре от други. Например, компресирането на текстови файлове е много просто: в резултат на това те могат да бъдат намалени наполовина. И изображенията (jpeg или png файлове) се компресират първоначално, така че допълнителното компресиране на gzip почти не дава резултати. Имайте предвид: Компресираните файлове използват сървърни ресурси, така че се препоръчва да компресирате само тези файлове, чийто размер може да бъде значително повлиян от gzip.

Този урок ще ви помогне да конфигурирате Nginx да използва gzip.

Изисквания

  • Сървър CentOS 7.
  • Судо потребител.
  • Предварително инсталиран уеб сървър Nginx (ръководство за инсталиране стъпка по стъпка - тук).

1: създаване на тестови файлове

Първо, трябва да създадете няколко файла в стандартната директория Nginx, за да практикувате върху тях.

За да определи какъв тип файл се прехвърля по мрежата, Nginx не анализира съдържанието на файла - тази операция ще отнеме твърде много време. Вместо това Nginx просто чете разширението на файла, за да определи типа му MIME.

Следователно няма значение какво съдържат тестовите файлове. Трябва само да зададете правилно името на файла, така че Nginx да третира празния файл като изображение, таблица със стилове и т.н.

В този пример конфигурация Nginx няма да компресира файлове, които са твърде малки. Създайте тестов файл, наречен test.html с размер 1 килобайт.

sudo truncate -s 1k /usr/share/nginx/html/test.html

sudo truncate -s 1k /usr/share/nginx/html/test.jpg
sudo truncate -s 1k /usr/share/nginx/html/test.css
sudo truncate -s 1k /usr/share/nginx/html/test.js

2: Проверете поведението на сървъра по подразбиране

Сега трябва да проверите как Nginx компресира файлове.

Опитайте да компресирате тестовия си HTML файл test.html.

curl -H "Accept-Encoding: gzip" -I http: //localhost/test.html

Забележка: HTTP заглавка Accept-Encoding: gzip показва, че уеб сървърът може да обслужва компресирано gzip съдържание.

Сървърът ще върне няколко HTTP заглавки в отговор.

HTTP/1.1 200 OK
Сървър: nginx/1.6.3
Дата: петък, 11 март 2016 12:53:06 GMT
Тип съдържание: text/html
Дължина на съдържанието: 1024
Последна промяна: петък, 11 март 2016 12:48:02 GMT
Връзка: поддържайте жив
ETag: "56e2be82-400"
Диапазони за приемане: байтове

Както можете да видите, в изхода няма споменаване на gzip; следователно сървърът не поддържа gzip компресия. По подразбиране на CentOS 7 компресирането на gzip е деактивирано на сървъра Nginx. Ако компресията е активирана, сървърът добавя заглавка към предишните редове: