il rilascio del server delle applicazioni , nell'ambito del quale si sviluppa una soluzione per l'esecuzione di applicazioni web in vari linguaggi di programmazione (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js e Java). Sotto la gestione di NGINX Unit possono essere eseguite contemporaneamente più applicazioni in diversi linguaggi di programmazione, i cui parametri di avvio possono essere modificati dinamicamente senza la necessità di modificare i file di configurazione e riavviare. Il codice è scritto in linguaggio C e sotto la licenza Apache 2.0. È possibile familiarizzare con le caratteristiche di NGINX Unit nel del primo rilascio.
Nella nuova versione:
- supporto per il bilanciamento del carico in modalità round-robin. Ad esempio, per distribuire il carico tra due server 192.168.0.100 e 192.168.0.101 con una direzione verso il secondo del doppio delle richieste, è possibile utilizzare la seguente costruzione:
«upstreams»: {
«rr-lb»: {
«servers»: {
«192.168.0.100:8080»: { },
«192.168.0.101:8080»: { «weight»: 2 }
}
}
} - possibilità di definire regole flessibili per la routizzazione delle richieste, simili alla funzionalità «» in nginx. Un percorso aggiuntivo è definito tramite la direttiva «fallback», che viene attivata se il file richiesto non viene trovato nel percorso definito attraverso la direttiva «share». Ad esempio, per invocare un gestore PHP in caso di assenza del file nella directory /data/www/ si può specificare:
{
«share»: «/data/www/»,
«fallback»: {
«pass»: «applications/php»
}
}È consentito l'uso di blocchi «fallback» annidati. Ad esempio, se il file non è presente in /data/www/, si può tentare di fornirlo da /data/cache/, e se non è presente nemmeno lì, reindirizzare la richiesta a un altro backend:
{
«share»: «/data/www/»,«fallback»: {
«share»: «/data/cache/»,«fallback»: {
«proxy»: «http://127.0.0.1:9000»
}
}
} - Nelle impostazioni di configurazione caricate in formato JSON è garantita la rimozione dei commenti in stile JavaScript («//…» e «/* … */») e la pulizia dei marcatori di sequenza di byte (), il che può essere utile nel caso di modifica manuale delle impostazioni in JSON.
- Ridotto il consumo di memoria grazie al salvataggio su disco delle intestazioni di richieste molto grandi.
Fonte: opennet.ru
