Voglio sapere cosa significa esattamente quando un server web si descrive come un server web pre-fork. Ho alcuni esempi come unicorn per ruby e gunicorn per python.Che cos'è esattamente un modello di server Web pre-fork?
In particolare, queste sono le domande:
- Che problema non risolve questo modello?
- Cosa succede quando viene avviato inizialmente un server Web pre-fork?
- Come gestisce la richiesta?
Inoltre, una domanda più specifica per unicorno/gunicorn:
Diciamo che ho una webapp che voglio correre con (g) unicorno. All'inizializzazione, la webapp eseguirà alcune operazioni di inizializzazione (ad esempio, inserirà ulteriori voci nel database). Se configuro (g) unicorno con più worker, il materiale di inizializzazione verrà eseguito più volte?
Ho avuto lo stesso dubbio sul significato di "prefork". Supponevo che fosse una sorta di biforcazione, naturalmente, ma la parte "pre" mi stava confondendo. Ho trovato qui http://www.abbreviations.com/prefork che la parte "pre" in realtà significa che i processi di lavoro vengono creati in anticipo, in modo che il tempo non venga sprecato a forking solo quando un lavoratore è necessario. Ha molto senso per me :) –
//, @ElNinjaTrepador, perché non aggiungere una risposta separata? Questo è stato molto più comprensibile per me, almeno, e potrebbe aiutare gli altri di più se quel commento diventa più importante. –
Ho aggiornato la risposta per aggiungere ulteriori informazioni sul pre-forcellone. @ ElninjaTrepador, grazie per avermelo fatto notare, non mi sono reso conto che non era ben noto. –