Brotli для Nginx на OpenSUSE
Как мне установить или добавить поддержку сжатия Brotli в Nginx на OpenSUSE Linux, чтобы ускорить работу моих веб-страниц и приложений?
Brotli — это бесплатный универсальный алгоритм сжатия без потерь с открытым исходным кодом, который сжимает данные с использованием различных методов. По скорости он похож на deflate или gzip, но предлагает более плотное сжатие для веб-сервера Apache или Nginx.
Nginx не поддерживает Brotli, но мы можем установить модуль ngx_brotli, разработанный Google, чтобы добавить поддержку Nginx. В этой статье расскажем, как добавить или установить поддержку Brotli в Nginx на сервере OpenSUSE Linux 15.2 для ускорения веб-страниц.
Устанавливаем модуль Brotli для Nginx на OpenSUSE
Мы можем найти сервер Nginx с помощью команды zypper следующим образом:
1 |
sudo zypper search nginx |
В списке поиска мы видим модуль для brotli
Установим nginx и nginx-module-brotli.
Шаг 1 — Установка nginx на OpenSUSE
Установку будем производить на openSUSE Leap версии 15.2. Я собираюсь установить nginx 1.16.1 следующим образом:
1 |
sudo zypper install nginx vim-plugin-nginx |
Шаг 2 — Установка модуля Brotli для Nginx на OpenSUSE
Затем введите следующую команду, чтобы установить Brotil в OpenSUSE для Nginx:
1 |
sudo zypper install nginx-module-brotli |
Шаг 3 — Конфигурация OpenSUSE nginx для Brotli
Отредактируйте /etc/nginx/nginx.conf, запустите:
1 |
sudo vi /etc/nginx/nginx.conf |
Добавьте строки после worker_processes auto;
1 2 |
load_module lib64 / nginx / modules / ngx_http_brotli_static_module.so; load_module lib64 / nginx / modules / ngx_http_brotli_filter_module.so; |
Вот как выглядит мой конфигурационный файл:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
user nginx; worker_processes auto; # load_module lib64/nginx/modules/ngx_http_fancyindex_module.so; # load_module lib64/nginx/modules/ngx_http_geoip_module.so; load_module lib64/nginx/modules/ngx_http_headers_more_filter_module.so; # load_module lib64/nginx/modules/ngx_stream_module.so; load_module lib64/nginx/modules/ngx_http_brotli_static_module.so; load_module lib64/nginx/modules/ngx_http_brotli_filter_module.so; error_log /var/log/nginx/error.log; #error_log /var/log/nginx/error.log notice; #error_log /var/log/nginx/error.log info; pid /run/nginx.pid; worker_rlimit_nofile <span class="nu0">65535</span>; events <span class="br0">{</span> worker_connections <span class="nu0">65535</span>; use epoll; multi_accept on; <span class="br0">}</span> http <span class="br0">{</span> include mime.types; default_type application/octet-stream; log_format main <span class="st0">'$remote_addr - $upstream_cache_status - $remote_user [$time_local] "$request" '</span> <span class="st0">'$status $body_bytes_sent "$http_referer" '</span> <span class="st0">'"$http_user_agent" "$http_x_forwarded_for"'</span>; access_log /var/log/nginx/access.log main; charset utf-<span class="nu0">8</span>; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout <span class="nu0">65</span>; types_hash_max_size <span class="nu0">2048</span>; client_max_body_size 16M; server_tokens off; log_not_found off; include conf.d/*.conf; include vhosts.d/*.conf; <span class="br0">}</span> |
Шаг 4. Включите поддержку brotli для Nginx в OpenSUSE.
Наконец, добавьте в свой server раздел следующее. Например, я добавил в свой файл /etc/nginx/vhosts.d/system-admins.conf следующее:
1 2 3 4 5 6 7 8 |
brotli on; brotli_comp_level <span class="nu0">6</span>; brotli_static on; brotli_types application/atom+xml application/javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype application/x-font-ttf application/x-javascript application/xhtml+xml application/xml font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml; |
Шаг 5 — перезапустите или перезагрузите веб-сервер Nginx
Теперь, когда мы установили и настроили модуль Brotil для Nginx. Проверьте файл конфигурации сервера Nginx на наличие синтаксических ошибок:
1 |
nginx -t |
мы увидим следующее подтверждение:
1 2 |
nginx: синтаксис файла конфигурации /etc/nginx/nginx.conf в порядке nginx: файл конфигурации /etc/nginx/nginx.conf, тест прошел успешно |
Отсутствие ошибок означает, что мы можем корректно перезапустить веб-сервер Nginx после внесенных изменений:
1 |
sudo systemctl reload nginx |
проверьте состояние сервера Nginx:
1 |
sudo systemctl status nginx |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<span class="amp-wp-981e973" data-amp-original-style="color: rgb(0, 153, 0);">●</span> nginx.service - HTTP-сервер nginx и обратный прокси-сервер. Загружено: загружено (/usr/lib/systemd/system/nginx.service; включено; предустановка поставщика: отключено) Активный: <span class="amp-wp-981e973" data-amp-original-style="color: rgb(0, 153, 0);">активен (работает)</span> с Сб 2021-01-09 15:41:44 UTC; 6 дней назад Процесс: 68339 ExecReload = / bin / kill -s HUP $ MAINPID (код = завершено, статус = 0 / УСПЕХ) Процесс: 539 ExecStartPre = / usr / sbin / nginx -t (код = завершен, статус = 0 / УСПЕХ) Основной PID: 543 (nginx) Задач: 0 CGroup: /system.slice/nginx.service ├─ 543 nginx: главный процесс / usr / sbin / nginx -g daemon off; ├─68340 nginx: рабочий процесс └─68341 nginx: рабочий процесс 14 января, 15:56:53 opensuse-nixcraft systemd [1]: nginx.service: не удалось сбросить устройства.list: операция не разрешена 16 января, 09:14:17 opensuse-nixcraft systemd [1]: перезагрузка HTTP-сервера nginx и обратного прокси-сервера. 16 января, 09:14:17 opensuse-nixcraft systemd [1]: перезагрузка HTTP-сервер nginx и обратный прокси-сервер. |
Шаг 4 — Проверка
Откройте терминал и введите следующую команду curl, чтобы узнать, поддерживает ли ваш веб-сайт кодирование контента с помощью Brotli. Синтаксис:
1 |
curl -sILH 'Accept-Encoding: br' https://system-admins.ru |