Назад | Перейти на главную страницу

nginx: включение сжатия gzip на основе имени хоста

У меня есть одна машина, на которой запущен nginx, обслуживающий HTTP-трафик для нескольких доменов (с использованием той же кодовой базы Lua). Для некоторых доменов я хотел бы включить сжатие gzip. Можно ли включить сжатие gzip для определенного набора доменов? Как?

Да, это так. У вас должен быть блок сервера для каждого имени хоста, просто используйте

gzip on;

или

gzip off;

Внутри каждого серверного блока. В документацию можно найти здесь. Единственная загвоздка в том, что вы использовали какой-то подстановочный знак или у вас нет серверного блока для каждого домена.

например

server {
  server_name www.example.com;
  listen 80;
  root /what/ever;
  gzip on;
}

server {
  server_name www.example2.com;
  listen 80;
  root /what/ever2;
  gzip off;
}

Если это не имеет смысла, опубликуйте файл конфигурации nginx и файл (ы) вашего сайта, и мы можем взглянуть.

Совершенно верно, если вы посмотрите на документация вы можете видеть, что это приемлемо для размещения gzip на любом из следующих уровней http, server, location, if in location и поскольку домен определен в server уровень с помощью server_name мы можем разместить рядом с ним gzip.

Сначала проверьте свой nginx.conf файл для gzip on; если он присутствует, удалите его.

Затем вам нужно создать файл conf и указать, где вы хотите использовать gzip.

server {
  server_name www.myexample.com;
  listen 80;
  gzip off;
}

server {
  server_name www.myotherexample.com;
  listen 80;
  gzip on;
}