Разработка на коленке

"тут должна быть красивая цитата о программировании"

Как поднять supervisord за nginx

2015-04-10 12:30

У supervisord есть одна проблема - его веб-интерфейс не очень хорошо работает, если его поместить в поддиректорию url. Т.е. вот так будет работать хорошо:

upstream supervisor {
   server 127.0.0.1:9001 fail_timeout=0;
}

location / {
   proxy_pass   http://supervisor;
}

А вот так уже нет

location /admin/ {
   proxy_pass   http://supervisor;
}

На github нашёл полухак

location /admin/ {
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host $http_host/admin/index.html;
   proxy_redirect off;
   rewrite ^/admin(.*)$ $1 break;
   proxy_pass http://supervisor;
}

Но у него есть одна проблема - он не работал на ссылках /admin/logtail/procname. Полностью пофиксить работу не получилось, поэтому сделал редирект на необновляемый хвост лога:

location /admin/logtail/ {
   rewrite ^/admin/logtail/(.*)$ /admin/tail.html?processname=$1 permanent;
}