Nginx e Apache

è utile per server dati statici usando Nginx (immagini, css, js) e dati dinamici (codice app + database) usando Apache?

Non è solo utile avere Nginx per servire immagini statiche, ma avere anche il proxy Nginx per Apache è una grande vittoria. Questo perché i client lenti fanno sì che Apache mantenga i thread occupati più a lungo del necessario. Nginx può gestire il client lento e consentire ad Apache di terminare la richiesta il più velocemente ansible, liberando il thread (e la memory) per altre richieste. Nginx accetterà la richiesta con la stessa velocità consentita dalla connessione locale e rispolverà la risposta al client lento.

È utile. Alcuni benchmark hanno mostrato che Nginx ha una velocità alless double rispetto ad Apache nel contenuto statico.

A seconda dell'applicazione può essere. L'idea è che la tua applicazione possa contenere più richieste statiche per pagina. Se riesci a rispondere a questi con un piccolo ingombro di memory, Nginx potrebbe richiedere less lavoratori Apache che probabilmente avranno un ingombro di memory maggiore per la stessa quantità di traffico.

È anche utile a causa della lacrimazione keep-alive.

Immagina la richiesta http del browser per una grande quantità dynamic di dati. La connessione di networking del client è molto più lenta della networking interna (caso più frequente quando nginx e apache si trovano sullo stesso host, quindi comunicano tramite l'interface loopback). Apache ha caricato tutti i dati su nginx e il suo worker è pronto a servire la prossima richiesta molto velocemente mentre nginx invia tali dati al client.

A causa della velocità e dell'impronta di nginx, è in grado di gestire molte più connessioni simultaneamente, quindi questa simbiosi funziona alla grande.