Как мне установить или добавить поддержку сжатия Brotli в Nginx на OpenSUSE Linux, чтобы ускорить работу моих веб-страниц и приложений?nBrotli — это бесплатный универсальный алгоритм сжатия без потерь с открытым исходным кодом, который сжимает данные с использованием различных методов. По скорости он похож на deflate или gzip, но предлагает более плотное сжатие для веб-сервера Apache или Nginx.nnNginx не поддерживает Brotli, но мы можем установить модуль ngx_brotli, разработанный Google, чтобы добавить поддержку Nginx. В этой статье расскажем, как добавить или установить поддержку Brotli в Nginx на сервере OpenSUSE Linux 15.2 для ускорения веб-страниц.n
Устанавливаем модуль Brotli для Nginx на OpenSUSE
Мы можем найти сервер Nginx с помощью команды zypper следующим образом:n
sudo zypper search nginx
В списке поиска мы видим модуль для brotlinУстановим nginx и nginx-module-brotli.n
Шаг 1 — Установка nginx на OpenSUSE
Установку будем производить на openSUSE Leap версии 15.2. Я собираюсь установить nginx 1.16.1 следующим образом:n
sudo zypper install nginx vim-plugin-nginx
Шаг 2 — Установка модуля Brotli для Nginx на OpenSUSE
Затем введите следующую команду, чтобы установить Brotil в OpenSUSE для Nginx:n
sudo zypper install nginx-module-brotli
Шаг 3 — Конфигурация OpenSUSE nginx для Brotli
Отредактируйте /etc/nginx/nginx.conf, запустите:n
sudo vi /etc/nginx/nginx.conf
Добавьте строки после worker_processes auto;n
load_module lib64 / nginx / modules / ngx_http_brotli_static_module.so;nload_module lib64 / nginx / modules / ngx_http_brotli_filter_module.so;
Вот как выглядит мой конфигурационный файл:n
user nginx;nworker_processes auto;n n# load_module lib64/nginx/modules/ngx_http_fancyindex_module.so;n# load_module lib64/nginx/modules/ngx_http_geoip_module.so;nload_module lib64/nginx/modules/ngx_http_headers_more_filter_module.so;n# load_module lib64/nginx/modules/ngx_stream_module.so;nload_module lib64/nginx/modules/ngx_http_brotli_static_module.so;nload_module lib64/nginx/modules/ngx_http_brotli_filter_module.so;n nerror_log /var/log/nginx/error.log;n#error_log /var/log/nginx/error.log notice;n#error_log /var/log/nginx/error.log info;n npid /run/nginx.pid;nworker_rlimit_nofile 65535;n nevents {n worker_connections 65535;n use epoll;n multi_accept on;n}n nhttp {n include mime.types;n default_type application/octet-stream;n n log_format main '$remote_addr - $upstream_cache_status - $remote_user [$time_local] "$request" 'n '$status $body_bytes_sent "$http_referer" 'n '"$http_user_agent" "$http_x_forwarded_for"';n n access_log /var/log/nginx/access.log main;n n charset utf-8;n sendfile on;n tcp_nopush on;n tcp_nodelay on;n keepalive_timeout 65;n types_hash_max_size 2048;n client_max_body_size 16M;n server_tokens off;n log_not_found off;n n include conf.d/*.conf;n include vhosts.d/*.conf;n}
Шаг 4. Включите поддержку brotli для Nginx в OpenSUSE.
Наконец, добавьте в свой server раздел следующее. Например, я добавил в свой файл /etc/nginx/vhosts.d/itfb.conf следующее:n
brotli on;nbrotli_comp_level 6;nbrotli_static on;nbrotli_types application/atom+xml application/javascript application/json application/rss+xmln application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetypen application/x-font-ttf application/x-javascript application/xhtml+xml application/xmln font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.iconn image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml;
Шаг 5 — перезапустите или перезагрузите веб-сервер Nginx
Теперь, когда мы установили и настроили модуль Brotil для Nginx. Проверьте файл конфигурации сервера Nginx на наличие синтаксических ошибок:n
nginx -t
мы увидим следующее подтверждение:n
nginx: синтаксис файла конфигурации /etc/nginx/nginx.conf в порядкеnnginx: файл конфигурации /etc/nginx/nginx.conf, тест прошел успешно
Отсутствие ошибок означает, что мы можем корректно перезапустить веб-сервер Nginx после внесенных изменений:n
sudo systemctl reload nginx
проверьте состояние сервера Nginx:n
sudo systemctl status nginx
● nginx.service - HTTP-сервер nginx и обратный прокси-сервер.n Загружено: загружено (/usr/lib/systemd/system/nginx.service; включено; предустановка поставщика: отключено)n Активный: активен (работает) с Сб 2021-01-09 15:41:44 UTC; 6 дней назадn Процесс: 68339 ExecReload = / bin / kill -s HUP $ MAINPID (код = завершено, статус = 0 / УСПЕХ)n Процесс: 539 ExecStartPre = / usr / sbin / nginx -t (код = завершен, статус = 0 / УСПЕХ)n Основной PID: 543 (nginx)n Задач: 0n CGroup: /system.slice/nginx.servicen ├─ 543 nginx: главный процесс / usr / sbin / nginx -g daemon off;n ├─68340 nginx: рабочий процессn └─68341 nginx: рабочий процессnn14 января, 15:56:53 opensuse-nixcraft systemd [1]: nginx.service: не удалось сбросить устройства.list: операция не разрешенаn16 января, 09:14:17 opensuse-nixcraft systemd [1]: перезагрузка HTTP-сервера nginx и обратного прокси-сервера.n16 января, 09:14:17 opensuse-nixcraft systemd [1]: перезагрузка HTTP-сервер nginx и обратный прокси-сервер.
Шаг 4 — Проверка
Откройте терминал и введите следующую команду curl, чтобы узнать, поддерживает ли ваш веб-сайт кодирование контента с помощью Brotli. Синтаксис:n
curl -sILH 'Accept-Encoding: br' https://itfb.com.ua
n