Tutoriales

OpenSUSE instala el módulo Brotli para Nginx

H¿Cómo instalo o agrego soporte de compresión Brotli a Nginx en OpenSUSE Linux para acelerar mis páginas web y aplicaciones?

Brotli es un operación de compresión sin pérdidas de propósito genérico tirado y de código libre que comprime datos utilizando varios métodos. Es similar en velocidad a desinflar o gzip, pero ofrece una compresión más densa para el servidor web Apache o Nginx.

Nginx no es compatible con Brotli, pero podemos instalar un módulo desarrollado por Google llamado ngx_brotli para juntar soporte a Nginx. Esta página explica cómo juntar o instalar el soporte Brotli para Nginx en un servidor OpenSUSE Linux 15.2 para acelerar las páginas web.

Detalles del tutorial
DificultadPracticable (rss)
Privilegios de root
RequisitosOpenSUSE Linux 15.1 / 15.2 con Nginx
Hora5m



OpenSUSE instala el módulo Brotli para Nginx

Podemos inquirir el servidor Nginx usando el comando zypper de la posterior modo:
sudo zypper search nginx

Loading repository data...
Reading installed packages...
 
S  | Name                                   | Summary                                                                         | Type
---+----------------------------------------+---------------------------------------------------------------------------------+--------
   | dehydrated-nginx                       | Nginx Integration for dehydrated                                                | package
   | fcgiwrap-nginx                         | System services for using fcgiwrap with nginx                                   | package
i  | nginx                                  | A HTTP server and IMAP/POP3 proxy server                                        | package
   | nginx-geolite-asn                      | IP ASN geolocation databases for nginx                                          | package
   | nginx-geolite-city                     | Free IP city geolocation databases for nginx                                    | package
   | nginx-geolite-country                  | Free IP country geolocation databases for nginx                                 | package
   | nginx-ingress-controller               | Kubernetes ingress controller for nginx                                         | package
i+ | nginx-module-brotli                    | NGINX module for Brotli compression                                             | package
   | nginx-module-cookie-flag               | The Nginx module for adding cookie flag                                         | package
   | nginx-module-devel-kit                 | Additional generic tools for nginx module development                           | package
   | nginx-module-devel-kit-source          | The nginx-module-devel-kit source                                               | package
   | nginx-module-http-auth-digest          | Digest Authentication for Nginx                                                 | package
   | nginx-module-http-substitutions-filter | Regular expression and fixed string substitutions nginx filter module           | package
   | nginx-module-modsecurity               | ModSecurity v3 Nginx Connector                                                  | package
   | nginx-module-set-misc                  | Various set_xxx directives added to nginx's rewrite module                      | package
   | nginx-module-sticky-ng                 | Nginx module to add a sticky cookie to be forwarded to the same upstream server | package
   | nginx-module-vts                       | Nginx imaginario host traffic status module                                        | package
   | nginx-source                           | The nginx source                                                                | package
   | pagure-web-nginx                       | Nginx configuration for Pagure                                                  | package
   | pcp-pmda-nginx                         | Performance Co-Pilot (PCP) metrics for the Nginx Webserver                      | package
   | python2-certbot-nginx                  | Nginx plugin for Certbot                                                        | package
   | python3-certbot-nginx                  | Nginx plugin for Certbot                                                        | package
   | rubygem-passenger-nginx                | Passenger Nginx module                                                          | package
i+ | vim-plugin-nginx                       | VIM support for nginx config files                                              | package

Instalemos nginx y nginx-module-brotli.

Paso 1: instalar nginx en OpenSUSE

Estoy usando la interpretación 15.2 de openSUSE Leap. Voy a instalar nginx / 1.16.1 de la posterior modo:
sudo zypper install nginx vim-plugin-nginx
Consulte “Cómo instalar y usar Nginx en el servidor OpenSUSE Linux” para obtener más información.

Paso 2: instalación del módulo Brotli para Nginx en OpenSUSE

A continuación, escriba el posterior comando para instalar Brotil en OpenSUSE para Nginx recién instalado:
sudo zypper install nginx-module-brotli

Paso 3: configuración nginx de OpenSUSE para Brotli

Edite el /etc/nginx/nginx.conf, ejecute:
sudo vi /etc/nginx/nginx.conf
Agregue / edite de la posterior modo luego de worker_processes utilitario; tendencia:

load_module lib64/nginx/modules/ngx_http_brotli_static_module.so;
load_module lib64/nginx/modules/ngx_http_brotli_filter_module.so;

Así es como se ve mi archivo de configuración:

user  nginx;
worker_processes utilitario;
 
# 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 65535;
 
events {
    worker_connections   65535;
    use epoll;
    multi_accept on;
}
 
http {
    include       mime.types;
    default_type  application/octet-stream;
 
    log_format  main  '$remote_addr - $upstream_cache_status - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    access_log  /var/log/nginx/access.log  main;
 
    charset utf-8;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    client_max_body_size 16M;
    server_tokens off;
    log_not_found off;
 
    include conf.d/*.conf;
    include vhosts.d/*.conf;
}

Paso 4: active la compatibilidad con brotli para Nginx en OpenSUSE

Finalmente agregue lo posterior en su servidor contexto. Por ejemplo, agregué lo posterior a mi archivo /etc/nginx/vhosts.d/cyberciti.biz.conf:

brotli on;
brotli_comp_level 6;
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;

Paso 5: reinicie o vuelva a cargar el servidor web Nginx

Ahora que instalamos y configuramos el módulo Brotil para Nginx. Verifique el archivo de configuración del servidor Nginx para ver si hay errores de sintaxis:
nginx -t
Veremos la confirmación de la posterior modo:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Sin errores significa que podemos reiniciar el servidor web Nginx sin problemas luego de realizar los cambios:
sudo systemctl reload nginx
Verifique el estado del servidor Nginx:
sudo systemctl status nginx

 nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2021-01-09 15:41:44 UTC; 6 days ago
  Process: 68339 ExecReload=/bin/kill -s HUP $MAINPID (code=exited, status=0/SUCCESS)
  Process: 539 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
 Main PID: 543 (nginx)
    Tasks: 0
   CGroup: /system.slice/nginx.service
           ├─  543 nginx: master process /usr/sbin/nginx -g daemon off;
           ├─68340 nginx: worker process
           └─68341 nginx: worker process

Jan 14 15:56:53 opensuse-nixcraft systemd[1]: nginx.service: Failed to reset devices.list: Operation not permitted
Jan 16 09:14:17 opensuse-nixcraft systemd[1]: Reloading The nginx HTTP and reverse proxy server.
Jan 16 09:14:17 opensuse-nixcraft systemd[1]: Reloaded The nginx HTTP and reverse proxy server.

Paso 4: pruébalo

Broa la terminal y escriba el posterior comando curl para ver si su sitio web admite la codificación de contenido con Brotli. La sintaxis es:
curl -sILH 'Accept-Encoding: br' https://www.cyberciti.biz

Probar el soporte de Brotli para Nginx en el servidor OpenSUSE

Relacionado: Cómo conocer si un sitio web usa compresión gzip / deflate usando curl en Linux y Unix

Otra opción es desobstruir las herramientas de exposición de Firefox / Chrome y inquirir la pestaña de red. Debes ver Codificación de contenido: br encabezados. Eso igualmente confirma que Brotil está funcionando correctamente en OpenSUSE Linux para el servidor web Nginx. Por ejemplo:

Click para agrandar

Resumiendo

Y ahí lo tiene, y agregamos soporte Brotli para Nginx en el servidor OpenSUSE Linux. Consulte la documentación de ngx_brotli en Github.



Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba