versione nginx 1.18.0

Dopo un anno di sviluppo представлена nuovo ramo stabile di server HTTP ad alte prestazioni e server proxy multiprotocollo nginx 1.18.0, che ha assorbito le modifiche accumulate all'interno del ramo principale 1.17.x. In futuro, tutte le modifiche al ramo stabile 1.18 saranno correlate all'eliminazione di bug e vulnerabilità gravi. Presto verrà formato il ramo principale di nginx 1.19, all'interno del quale continuerà lo sviluppo di nuove funzionalità. Per gli utenti ordinari che non hanno il compito di garantire la compatibilità con moduli di terze parti, raccomandato utilizzare il ramo principale, sulla base del quale si formano ogni tre mesi i rilasci del prodotto commerciale Nginx Plus.

Secondo Rapporto di aprile Netcraft nginx è utilizzato nel 19.56% di tutti i siti attivi (un anno fa 20.73%, due anni fa 21.02%), che corrisponde al secondo posto in popolarità in questa categoria (la quota di Apache corrisponde al 27.64%, Google - 10.03%, Microsoft IIS - 4.77%) . Allo stesso tempo, se si considerano tutti i siti, nginx mantiene la leadership e occupa il 36.91% del mercato (un anno fa era il 27.52%), mentre la quota di Apache corrisponde al 24.73%, Microsoft IIS - 12.85%, Google - 3.42%.

Tra il milione di siti più visitati al mondo, la quota di nginx è del 25.54% (un anno fa 26.22%, due anni fa 23.76%). Attualmente, circa 459 milioni di siti web utilizzano Nginx (397 milioni un anno fa). Di Secondo W3Techs nginx è utilizzato sul 31.9% dei siti sul milione più visitati, nell'aprile dello scorso anno questa cifra era del 41.8%, l'anno prima - 38% (il calo è spiegato dal passaggio alla contabilità separata del server http Cloudflare). Nel corso dell'anno la quota di Apache è scesa dal 43.6% al 38.9% e quella di Microsoft IIS dall'8.6% all'8.3%. In Russia nginx usato sul 78.9% dei siti più visitati (un anno fa - 81%).

I miglioramenti più notevoli aggiunti durante la formazione del ramo upstream 1.17.x sono:

  • Direttiva aggiunta limit_req_dry_run, che attiva la modalità trial, in cui non vengono applicate restrizioni sull'intensità di elaborazione delle richieste (senza limite di velocità), ma continua a tenere conto del numero di richieste che superano i limiti nella memoria condivisa;
  • Direttiva aggiunta limit_conn_dry_run, che commuta il modulo ngx_http_limit_conn_module in modalità test run, in cui il numero di connessioni non è limitato, ma viene preso in considerazione;
  • Aggiunta direttiva "ritardo_autenticazione", che consente di aggiungere un ritardo alle richieste non autorizzate con un codice di risposta 401 per ridurre l'intensità dell'indovinare la password e proteggersi da attacchi, manipolando la misurazione del tempo di esecuzione delle operazioni (timing attack) quando si accede a sistemi ad accesso limitato password, risultato di una sottoquery o J.W.T. (Token Web JSON);
  • Aggiunto il supporto per le variabili nelle direttive "limit_rate" e "limit_rate_after", nonché nelle direttive "proxy_upload_rate" e "proxy_download_rate" del modulo stream;
  • Nella direttiva grpc_pass aggiunto il supporto per l'utilizzo di una variabile in un parametro che definisce un indirizzo. Se l'indirizzo viene specificato come nome a dominio, il nome viene cercato tra i gruppi di server descritti e, se non trovato, determinato tramite un risolutore;
  • Aggiunte nuove variabili $indirizzo_server_protocollo_proxy и $porta_server_protocollo_proxy, che contengono l'indirizzo del server e la porta ottenuti dall'intestazione del protocollo PROXY;
  • Nel modulo ngx_stream_limit_conn_module variabile aggiunta $limit_conn_status, che memorizza il risultato della limitazione del numero di connessioni: PASSED, REJECTED o REJECTED_DRY_RUN;
  • Nel modulo ngx_http_limit_req_module variabile aggiunta $limit_req_status, che memorizza il risultato della limitazione del tasso di arrivo delle richieste: PASSED, DELAYED, REJECTED, DELAYED_DRY_RUN o REJECTED_DRY_RUN;
  • Per impostazione predefinita, il modulo è assemblato ngx_http_postpone_filter_module;
  • Aggiunto il supporto per attivare/disattivare i blocchi "posizione" con nome utilizzando il metodo $r->internal_redirect() fornito dall'interprete Perl integrato. Questo metodo ora prevede l'elaborazione di URI con caratteri di escape;
  • Quando si utilizza la direttiva "upstream" nel blocco delle impostazioni "upstream".hash» per organizzare il bilanciamento del carico con collegamento client-server, se si specifica un valore di chiave vuoto, viene ora attivata la modalità di bilanciamento uniforme (round-robin);
  • Aggiunto il supporto per chiamare ioctl(FIONREAD) se disponibile per evitare la lettura da una connessione veloce nel tempo.

Fonte: opennet.ru

Aggiungi un commento