Foreman not working with NGINX
Asked Answered
O

1

6

I'm trying to use Foreman (version 0.31.0) to manage our application's processes but I'm not having much luck with nginx (nginx/1.0.10 + Phusion Passenger 3.0.11).

Here's the relevant line from my Procfile:

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

When I start the app, Foreman reports that nginx is started and then immediately terminated:

$ 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

However, nginx is actually running, even though Foreman reports otherwise.


Similarly, if I export to Upstart:

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

and run sudo start my_app, nginx starts properly. But sudo stop my_app does not stop nginx. It continues running.

Is there a trick to getting nginx to work with Foreman?

Note: I found this issue with Foreman and I'm wondering if it's related.

Okra answered 4/1, 2012 at 21:35 Comment(0)
N
9

You'll want to run nginx in foreground mode by adding the following to your nginx.conf

daemon off;

You can specify a custom nginx.conf to nginx with the -c argument

Not answered 4/1, 2012 at 22:0 Comment(2)
Yep, works perfectly now. Thanks! I assume this is one of the allowable exceptions to the "don't use daemon off in production" rule mentioned in the nginx docs for daemon.Okra
You can do /usr/local/nginx/sbin/nginx -g "daemon off;" instead of modifying the nginx.conf but daemon off is for development. Is foreman used in production?Disinterested

© 2022 - 2024 — McMap. All rights reserved.