2012-01-04 17 views
6

Sto cercando di utilizzare Foreman (versione 0.31.0) per gestire i processi della nostra applicazione, ma non ho molta fortuna con nginx (nginx/1.0.10 + Phusion Passenger 3.0.11).Foreman non funziona con NGINX

Ecco la linea di rilevante dal mio Procfile:

nginx: sudo /home/ubuntu/nginx/sbin/nginx 

Quando avvio l'applicazione, Foreman riferisce che nginx è avviato e poi subito interrotta:

$ foreman start 
21:18:28 nginx.1 | started with pid 27347 
21:18:28 nginx.1 | process terminated 
21:18:28 system | sending SIGTERM to all processes 

Tuttavia, nginx è effettivamente in esecuzione, anche se Foreman riporta diversamente.


Allo stesso modo, se esporto a Upstart:

rvmsudo foreman export upstart /etc/init -a my_app -u ubuntu 

e corro sudo start my_app, nginx inizia correttamente. Ma sudo stop my_appnon si ferma nginx. Continua a correre.

C'è un trucco per far funzionare nginx con Foreman?

Nota: ho trovato this issue with Foreman e mi chiedo se è correlato.

risposta

9

ti consigliamo di eseguire nginx in modalità primo piano, aggiungendo quanto segue al nginx.conf

daemon off; 

È possibile specificare una consuetudine nginx.conf per nginx con l'argomento -c

+0

Yep , funziona perfettamente ora. Grazie! Presumo che questa sia una delle eccezioni consentite alla regola _ "non usare' daemon off' in produzione "_ menzionata nei documenti di nginx per [daemon] (http://wiki.nginx.org/CoreModule#daemon) . –

+3

È possibile eseguire il daemon '/ usr/local/nginx/sbin/nginx -g"; invece di modificare nginx.conf ma 'daemon off' è destinato allo sviluppo. Il caposquadra è utilizzato nella produzione? – PhilT

Problemi correlati