Rate this post

Как мне установить или добавить поддержку сжатия 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

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

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