Gli svantaggi dell'utilizzo di nginx come server Web primario?


12

Ho visto milioni di siti Web che utilizzano nginx come server Web proxy che lavora insieme ad Apache. Ma ho visto pochissimi server che eseguono nginx solo come server web predefinito. Quali sono i principali svantaggi di tale configurazione?

Posso vedere alcuni:

  • Impossibilità di utilizzare i file di configurazione per directory come .htaccess, quindi ogni modifica alla configurazione deve essere eseguita nel file di configurazione del server principale e richiede il ricaricamento del server. Ma pecl htscanner può compensarli per le impostazioni php
  • Indisponibilità di mod_php per nginx, che può essere compensato da php-fpm per esempio.

Cosa sono gli altri? Perché le persone non abbandonano semplicemente Apache e passano a nginx o qualsiasi altra soluzione leggera? Può essere, ci sono alcuni motivi speciali?

EDIT: questa domanda riguarda principalmente l'utilizzo dello stack LAMP.


1
Mindshare, inerzia, investimento. Lo stesso di sempre.
Ignacio Vazquez-Abrams,

Quale investimento è necessario per configurare nginx su un nuovo server? È un software open source gratuito.
Vladislav Rastrusny

3
L'investimento di tempo richiesto per la ricerca, la distribuzione, il test, ecc.
ThatGraemeGuy,

Se parliamo di quantità, IMHO il motivo principale è l'enorme numero di host condivisi che utilizzano Apache. Configurare nginx come servizio condiviso (ad es. Come in cPanel, Plesk, ecc.) Non è ancora così semplice come fare lo stesso con Apache, specialmente per gli utenti finali. Conosco molti server dedicati che gestiscono un singolo sito e tuttavia usano cPanel / Plesk / etc solo per la facilità, la familiarità e il basso costo di installazione.
Halil Özgür

Risposte:


9

Dalla mia esperienza #nginx è quasi sempre a causa della familiarità con i file .htaccess di Apache e non volendo perderlo o altrimenti dipendere da esso. Ad esempio le persone che eseguono l'hosting di server condiviso che vogliono scaricare solo i file statici e mantenere apache con cui i loro utenti giocheranno.

E onestamente non riesco davvero a pensare ad altri motivi per inviare proxy ad Apache oltre a mantenere .htaccess per gli utenti finali.

Modifica: In realtà mod_php più phpsuexec per host condivisi potrebbe essere un altro motivo per rimanere con Apache.


Dalla mia esperienza è piuttosto difficile ottenere buone prestazioni da Tomcat tramite nginx, in quanto l'apj2-worker di apache2 è notevolmente più veloce ad alta pressione. So che nginx ha un'implementazione sperimentale ajp13, ma non è stabile e scarsamente documentato.
pauska,

1
Questo è molto possibile. Nginx funziona al meglio come proxy inverso fastcgi o HTTP 1.0. So che ci sono moduli di terze parti per parlare con scgi, wsgi ecc. Ma non posso dire quanto siano stabili o anche quanto siano veloci.
Martin Fjordvald,

A proposito, mod_php non funziona con suexec. Suexec è per applicazioni cgi.
Vladislav Rastrusny,

Bene, eccoti, senza vere ragioni. Sono stato un utente nginx per troppo tempo per ricordare ancora più Apache. : D
Martin Fjordvald,

6

Se hai un sacco di persone che possono far funzionare bene Apache, perché preoccuparsi di riapprendere un'app e una configurazione completamente nuove, migrare le regole mod_rewrite, ripetere le configurazioni mod_perl / php / etc, riprovare, ri-distribuire?

Entrambi gli stack di software possono essere gratuiti, ma "ri-addestrare, ri-sviluppare, riprovare" non lo è, ed è ora che tu possa aggiungere funzionalità a cui i tuoi utenti si preoccupano 1 , piuttosto che armeggiare per il gusto di armeggiare.

1 Ovviamente non sto parlando di progetti personali, lì.


2

Mi piace Nginx, ma due cose mi impediscono di usarlo per i miei siti web.

  • È difficile configurare PHP-FPM . Non sono ancora riuscito a farlo con l'ultima versione di PHP.

  • Nginx non ha supporto per Websocket HTML5, di cui sono interessato.


1
Puoi nominare le difficoltà che hai riscontrato con nginx e php-fpm? A proposito di HTML5 WebSocket, sembra che Apache non li abbia ancora: issues.apache.org/bugzilla/show_bug.cgi?id=47485
Vladislav Rastrusny,

Mi piacerebbe conoscere anche i problemi di php-fpm. Se puoi compilare PHP dal sorgente senza di esso, allora è molto semplice farlo anche con esso.
Martin Fjordvald,

1
Il ramo 5.3 lo contiene già, quindi basta ./configure --enable-fpm e il gioco è fatto.
Vladislav Rastrusny,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.