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 | sí |
Requisitos | OpenSUSE Linux 15.1 / 15.2 con Nginx |
Hora | 5m |
Tabla de Contenidos
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
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:
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.