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
Dificultad Practicable (rss)
Privilegios de root
Requisitos OpenSUSE Linux 15.1 / 15.2 con Nginx
Hora 5m



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

Publicaciones relacionadas
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.



LEER  Una herramienta que explota automáticamente la ruta de escalada de privilegios de Active Directory que muestra BloodHound

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