Contacteu-nos

info@serverion.com

Dominar les configuracions de Nginx per a un rendiment òptim del servidor web

Dominar les configuracions de Nginx per a un rendiment òptim del servidor web

Voleu llocs web més ràpids i millors rendiment del servidor? Nginx pot ajudar. Amb el seu disseny basat en esdeveniments, Nginx gestiona milers de connexions de manera eficient, la qual cosa la converteix en la millor opció per a llocs web d'alt trànsit i aplicacions en temps real. Però per desbloquejar tot el seu potencial, la configuració adequada és clau.

Punts clau per emportar:

  • Augmenta el rendiment: Ajusteu els processos de treball i activeu la compressió per reduir l'ús de recursos i accelerar les respostes.
  • Gestiona el trànsit: Utilitzeu l'equilibri de càrrega per distribuir el trànsit entre servidors i optimitzar per a càrregues pesades.
  • Connexions segures: Configureu la terminació SSL per millorar la seguretat sense sobrecarregar els servidors backend.
  • Aplicacions en temps real: Configureu el suport de WebSocket per a una comunicació perfecta en plataformes en temps real.
  • Supervisar eficaçment: Utilitzeu eines com Prometheus i Grafana per fer un seguiment de la salut i el rendiment del servidor.

Exemples de configuració ràpida:

  • Processos de treball: Coincideix amb els nuclis de la CPU (processos_treballador 4;).
  • Compressió: Activa Gzip (gzip activat; gzip_comp_level 6;).
  • Emmagatzematge a la memòria cau: Configura la memòria cau del servidor intermediari per a la velocitat (proxy_cache_path /var/cache/nginx;).
  • Equilibri de càrrega: Distribuïu el trànsit amb connexions circulars o mínimes.

Consell professional: Superviseu i ajusteu regularment la vostra configuració per mantenir el vostre servidor funcionant sense problemes. Tant si gestioneu llocs web d'alt trànsit, contingut estàtic o aplicacions en temps real, aquestes configuracions poden marcar la diferència.

Ajust del rendiment NGINX Open Source i NGINX Plus

NGINX

Arxius i configuració clau de Nginx

Aconseguir el màxim profit del vostre servidor Nginx comença per comprendre els seus fitxers de configuració i ajustar la configuració de les claus. Aquí teniu un desglossament del que necessiteu saber.

Entendre els fitxers de configuració de Nginx

La configuració de Nginx s'organitza en dues àrees principals:

  • Configuració global: Trobada a /etc/nginx/nginx.conf
  • Configuració específica del lloc: Situat a /etc/nginx/sites-available/

Abans d'aplicar els canvis, prova la teva configuració amb nginx -t per assegurar-se que està lliure d'errors.

Afinació dels processos i connexions dels treballadors

Els processos i les connexions dels treballadors tenen un paper important en el rendiment del vostre servidor. Aquí teniu una guia ràpida per configurar-los:

Configuració Descripció Valor d'exemple
processos_treballador Nombre de processos de treball Coincideix amb els nuclis de la CPU
connexions_treballadors Màxim de connexions per treballador 1024 – 2048
keepalive_timeout Temps d'espera de connexió 65 segons

Consell: ajusteu aquests valors en funció del maquinari del vostre servidor.

Per exemple, si el vostre servidor té 4 nuclis de CPU, la vostra configuració podria semblar així:

processos_treballadors 4; esdeveniments { connexions_treballadors 1024; } 

Després d'optimitzar els processos de treball, podeu millorar encara més el rendiment activant la compressió i la memòria cau.

Utilitzant la compressió i la memòria cau Gzip

La compressió i la memòria cau ajuden a reduir l'amplada de banda i millorar els temps de càrrega. A continuació s'explica com configurar-los:

Activa la compressió Gzip:

gzip activat; gzip_comp_level 6; gzip_types text/text pla/css aplicació/json aplicació/javascript; 

Configura la memòria cau:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=one:10m inactive=60m; proxy_cache one; proxy_cache_valid 200 302 10m; proxy_cache_valid 404 1m; 

El proxy_cache_path La directiva crea una zona de memòria cau per al contingut d'accés freqüent, la qual cosa redueix la càrrega del vostre backend. També pots utilitzar cache_de_fitxers oberts per emmagatzemar fitxers d'accés habitual a la memòria, reduint l'ús del disc.

Tècniques avançades d'equilibri de càrrega i SSL

Basant-se en l'optimització i la memòria cau dels processos de treball, aquestes tècniques se centren en millorar la distribució i la seguretat del trànsit.

Configuració de l'equilibri de càrrega

Nginx ofereix eines potents per difondre el trànsit entrant entre diversos servidors. Aquí teniu una configuració bàsica:

backend aigües amunt { # Per defecte: round-robin per a distribució equilibrada servidor localhost:8080; server localhost:8081; server localhost:8082; # Descomenta per a menys connexions (millor per a càrregues de treball desiguals) # least_conn; } server { listen 80; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } 
  • Round-robin és ideal per a servidors amb temps de resposta similars.
  • Connexions mínimes funciona millor quan les sol·licituds varien en complexitat, ajudant a evitar la sobrecàrrega de servidors més lents.
  • Per a la persistència de la sessió, activeu-lo IP Hash per dirigir els usuaris al mateix servidor de manera coherent.

Configuració de la terminació SSL

La terminació SSL trasllada les tasques de xifratge a Nginx, reduint la càrrega de treball als servidors de fons. La investigació de Bobcares suggereix que això pot reduir la latència de l'enllaç SSL fins a 50%.

A continuació s'explica com combinar la terminació SSL amb l'equilibri de càrrega:

http { upstream backend { server localhost:8080; server localhost:8081; } server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/certificate.crt; ssl_certificate_key /path/to/private/key.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } 

Consells importants sobre SSL:

  • Enganxeu-vos a TLS 1.2 i 1.3 per a una millor seguretat.
  • Prioritzeu els xifratges del servidor per a un xifratge més fort.
  • Activa la memòria cau de la sessió per millorar el rendiment.

Personalització de Nginx per a necessitats específiques

Optimització de Nginx per a llocs web d'alt trànsit

Per als llocs web d'alt trànsit, la configuració de Nginx s'ha d'ajustar per gestionar càrregues pesades amb eficàcia. L'ajust dels paràmetres clau pot millorar significativament la capacitat de resposta del servidor i el rendiment general.

Ajustos de la mida del buffer

http { client_body_buffer_size 16k; client_header_buffer_size 4k; client_max_body_size 8m; large_client_header_buffers 4 8k; } 

Aquests paràmetres prioritzen l'ús de la memòria sobre l'E/S del disc, accelerant la gestió de les sol·licituds. Per exemple, augmentant client_body_buffer_size redueix la necessitat d'escriure fitxers temporals durant les sol·licituds.

Gestió eficient del registre

http { access_log /var/log/nginx/access.log buffer combinat = 32k flush = 5s; error_log /var/log/nginx/error.log warn; } 

L'ús d'una memòria intermèdia de 32 KB i un interval de neteja de 5 segons minimitza les operacions del disc alhora que manté els registres precisos i actualitzats.

Configuració del temps d'espera

http { client_body_timeout 12; client_header_timeout 12; send_timeout 10; } 

Aquests valors de temps d'espera ajuden a evitar que els clients lents consumeixin recursos del servidor innecessàriament.

Un cop realitzats aquests ajustos, Nginx també es pot personalitzar per a aplicacions que requereixen una comunicació contínua, com ara WebSockets.

Configuració de Nginx per al suport de WebSocket

Els WebSockets són un component crític de les aplicacions en temps real. La configuració correcta de Nginx per gestionar connexions WebSocket garanteix un rendiment fluid fins i tot sota càrrega.

mapa $http_upgrade $connection_upgrade { actualització per defecte; '' tanca; } servidor { listen 80; nom_del_servidor example.com; ubicació /websocket { proxy_pass http://backend_server; proxy_http_version 1.1; proxy_set_header Actualització $http_upgrade; proxy_set_header Connexió $connection_upgrade; proxy_set_header Amfitrió $host; proxy_cache_bypass $http_upgrade; # Configuració de temps d'espera per a connexions WebSocket proxy_read_timeout 300s; proxy_send_timeout 300s; } } 

Detalls de configuració clau de WebSocket:

Directiva Propòsit
proxy_http_versió Habilita HTTP/1.1 per al suport de WebSocket
proxy_read_timeout Estableix el temps màxim entre paquets de dades
proxy_send_timeout Defineix el temps màxim per enviar dades
proxy_cache_bypass Desactiva la memòria cau per al trànsit WebSocket

El mapa La directiva gestiona de manera eficient les actualitzacions de connexió, assegurant una comunicació fluida de WebSocket.

Per evitar l'abús, la limitació de velocitat es pot aplicar a les connexions WebSocket:

http { limit_req_zone $binary_remote_addr zone=websocket_limit:10m rate=5r/s; location /websocket { limit_req zone=websocket_limit burst=20 nodelay; # ... resta de la configuració de WebSocket } } 

Aquesta configuració restringeix les IP a 5 sol·licituds per segon amb una ràfega de 20 sol·licituds, protegint-se dels atacs DoS alhora que es manté la disponibilitat del servei.

Bones pràctiques per al rendiment i la supervisió de Nginx

Més enllà de la configuració inicial, mantenir la configuració de Nginx optimitzada garanteix que pugui gestionar les càrregues de treball canviants de manera eficaç.

Àrees clau per centrar-se

Millorar el rendiment de Nginx implica ajustar els paràmetres específics que afecten directament l'eficiència del vostre servidor.

Gestió de processos de treball

El worker_rlimit_nofile La directiva és crucial per gestionar els descriptors de fitxers. Assegura que el vostre servidor pugui gestionar múltiples connexions simultànies sense assolir límits durant els períodes de trànsit elevat:

worker_rlimit_nofile 65535; 

Utilitzant la memòria cau de fitxers oberts

La memòria cau de fitxers oberta minimitza les E/S del disc mitjançant la memòria cau de les metadades dels fitxers d'accés freqüent, la qual cosa accelera el lliurament de contingut estàtic:

http { open_file_cache màx=1000 inactiu=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors activat; } 

Un cop realitzades aquestes optimitzacions, el seguiment regular esdevé essencial per garantir un rendiment continuat i detectar les àrees que necessiten més ajustos.

Supervisió del rendiment de Nginx

La supervisió ajuda a fer un seguiment del rendiment del vostre servidor i descobreix qualsevol coll d'ampolla o ineficiència. Les mètriques clau que cal observar inclouen les taxes de sol·licitud, les taxes d'error i l'ús de recursos. Eines com Prometheus i Grafana faciliten la recopilació i la visualització d'aquestes dades.

Recomanat Eines de seguiment

Eina Propòsit Mètriques clau
Prometeu Recull dades de rendiment en directe Taxes de sol·licitud, temps de resposta, percentatges d'error
Grafana Visualitza les tendències de rendiment Ús de CPU, consum de memòria, patrons de trànsit
htop Fes un seguiment de l'ús dels recursos del sistema Ús del procés, assignació de memòria

Configuració de mètriques de rendiment

Activeu el control de l'estat a Nginx configurant el següent:

ubicació /nginx_status { stub_status activat; access_log off; permetre 127.0.0.1; denegar-ho tot; } 

Aquesta configuració proporciona informació sobre:

  • Connexions actives
  • Total de connexions acceptades
  • Estadístiques de gestió de sol·licituds
  • Connexions de lectura, escriptura i espera

Analitzant els registres de manera eficaç

El registre de memòria intermèdia pot reduir la tensió del disc agrupant les escriptures de registre. Això ajuda a mantenir el rendiment del servidor sense sacrificar la precisió dels vostres registres.

"El seguiment i l'ajust periòdics basats en dades de rendiment són crucials per aconseguir resultats òptims. És essencial evitar fer massa canvis alhora, ja que això pot complicar la resolució de problemes".

Opcions d'allotjament per a Nginx

Escollir l'entorn d'allotjament adequat és tan important com ajustar les configuracions de Nginx. La plataforma adequada garanteix que les vostres optimitzacions proporcionin els millors resultats.

Característiques de Servidor Hosting

Servidor

Serverion ofereix una plataforma d'allotjament dissenyada específicament per a Nginx, que ofereix un rendiment i una fiabilitat excepcionals.

Emmagatzematge i rendiment
Serverion utilitza emmagatzematge SSD optimitzat per a Nginx, reduint la latència d'E/S per accelerar l'accés als fitxers i registres de configuració.

Infraestructura de seguretat
Amb la protecció DDoS a nivell empresarial, Serverion millora la seguretat de Nginx. Això garanteix el temps de funcionament durant els atacs i complementa les funcions d'equilibri de càrrega de Nginx.

Tipus de recurs Especificacions Beneficis per a Nginx
CPU Xeon Quad-Core Gestiona els processos dels treballadors de manera eficient
RAM Fins a 16 GB Augmenta el rendiment de la memòria cau
Emmagatzematge Basat en SSD Accelera l'accés als fitxers
Ample de banda Gran capacitat Admet un equilibri de càrrega fiable

Infraestructura escalable
Els plans de Serverion estan dissenyats per adaptar-se a les vostres necessitats creixents de trànsit. Això garanteix que la vostra configuració de Nginx pugui gestionar l'augment de la demanda sense perdre rendiment.

"La supervisió regular i l'optimització del rendiment són essencials quan allotja Nginx. L'entorn d'allotjament adequat hauria de proporcionar tant els recursos com les eines necessàries per mantenir un rendiment òptim del servidor".

Suport expert
L'equip d'assistència 24/7 de Serverion inclou especialistes de Nginx que us poden ajudar amb els ajustaments de configuració i l'ajust del rendiment adaptats a les vostres necessitats.

Conclusió i consells finals

Recapitulació dels punts clau

Treure el màxim profit de Nginx significa centrar-se en un enfocament clar i pas a pas. Comenceu per comprendre els límits de maquinari i els patrons de trànsit del vostre servidor. A partir d'aquí, ajusteu la configuració com els processos de treball, la memòria cau i l'equilibri de càrrega per assegurar-vos que el vostre servidor funcioni correctament i de manera eficient.

Passos per començar

  1. Valida les configuracions: abans de fer qualsevol canvi en directe, utilitzeu nginx -t per comprovar si hi ha errors en les vostres configuracions.
  2. Optimitzacions centrals:
    • Partit processos_treballador als nuclis de CPU del vostre servidor (p. ex., processos_treballador 4 per a un servidor de 4 nuclis).
    • Activeu la compressió gzip per reduir la mida dels fitxers un 50-70%.
    • Ajusteu les mides de la memòria intermèdia per gestionar les sol·licituds de manera més eficient.
  3. Funcions avançades:
    • Configureu la terminació SSL per assegurar les connexions.
    • Configureu la memòria cau de contingut amb la configuració de caducitat adequada.
    • Utilitzeu l'equilibri de càrrega adaptat als vostres patrons de trànsit.
    • Instal·leu eines com Prometheus i Grafana per controlar el rendiment.

Seguiment del rendiment: Vigilar el rendiment del vostre servidor és clau. Feu un seguiment de mètriques com les taxes de sol·licitud, els temps de resposta i l'ús de recursos per detectar qualsevol problema abans que afecti els usuaris.

"La supervisió regular i l'optimització del rendiment són essencials quan allotja Nginx. La combinació adequada de paràmetres de configuració i eines de monitorització garanteix un rendiment òptim del servidor al llarg del temps".

Preguntes freqüents

Aquí teniu les respostes a algunes preguntes habituals sobre les configuracions de Nginx per ajudar-vos a solucionar problemes i millorar el rendiment.

Com puc comprovar si Nginx està en memòria cau?

Per comprovar si Nginx guarda contingut a la memòria cau, inspeccioneu les capçaleres de resposta HTTP. Busqueu:

  • X-Cache: un valor "HIT" significa que el contingut s'emmagatzema a la memòria cau.
  • X-Cache-Estat: indica l'estat actual de la memòria cau.

Podeu utilitzar aquesta ordre per veure les capçaleres:

curl -I https://yourwebsite.com 

Nota: Assegureu-vos que aquestes capçaleres estiguin configurades a la vostra configuració de Nginx; en cas contrari, no apareixeran a la resposta.

Aquí teniu un exemple de configuració per configurar els buffers de manera eficient:

client_body_buffer_size 10K; client_header_buffer_size 1K; client_max_body_size 8m; large_client_header_buffers 4 4k; 

Com habilito el suport de WebSocket?

Per habilitar el suport de WebSocket, assegureu-vos que el vostre proxy_pass La directiva apunta al servidor backend de WebSocket. Per obtenir instruccions detallades, consulteu la secció anterior sobre la configuració de WebSocket.

Com puc configurar SSL de manera segura?

Utilitzeu la configuració següent per configurar SSL de manera segura:

servidor { listen 443 ssl; nom_del_servidor example.com; ssl_certificate /path/to/cert.crt; ssl_certificate_key /path/to/cert.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; } 

Com optimitzo Nginx per a un trànsit elevat?

Per als llocs web d'alt trànsit, centreu-vos en aquestes àrees clau:

  • Partit processos_treballador al nombre de nuclis de CPU i augmentar connexions_treballadors per gestionar més connexions.
  • Configureu una memòria cau efectiva per reduir la càrrega del servidor.
  • Ajusteu les mides de la memòria intermèdia per processar les sol·licituds de manera més eficient.

"La supervisió regular i l'optimització del rendiment són essencials quan allotja Nginx. La combinació adequada de paràmetres de configuració i eines de monitorització garanteix un rendiment òptim del servidor al llarg del temps".

Publicacions de bloc relacionades

ca