Search code examples
nginxgofastcgi

Automatic respawn fastcgi process by nginx?


I am using nginx and running fcgi protocol using golang's fcgi module. How can I respawn my fcgi process automatically by nginx ?

My nginx.conf looks like

server {
    listen 80;
    server_name 127.0.0.1;
    root /home/jdk2588/testdir;
    index index.html;   
    location / {
        access_log  /home/jdk2588/KARMA/nginx/access.log;
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-Ip $remote_addr;
        proxy_set_header X-Scheme $scheme;
    }
    location ~ /goapp {
        include         fastcgi.conf;
        fastcgi_pass    127.0.0.1:9001;
    }
}

Solution

  • From the docs

    Unlike Apache or Lighttpd, Nginx does not automatically spawn FCGI processes. You must start them separately.

    So you'll need to use an OS facility to do that.

    My favourite is supervisord but there are lots of other ways of doing it.

    There isn't a go way of restarting a process when it dies as far as I know