Estou tentando disponibilizar a interface da Web do supervisor no link
Depois de tentar por muitas horas, consegui que funcionasse corretamente com uma barra ( link ).
Eu consegui que ele aparecesse sem barra, mas nenhuma das imagens / css etc. funciona.
Sou novo no nginx, então estou supondo que algo está errado com minhas regras de reescrita. A primeira reescrita é algo que eu tentei adicionar uma barra final.
supervisord.conf
[unix_http_server]
file = /tmp/supervisor.sock ; (the path to the socket file)
chmod=0700 ; socket file mode (default 0700)
nginx.conf
location ~* ^/supervisor/? {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_x_host;
proxy_set_header X-NginX-Proxy true;
rewrite ^(.*[^/])$ $1/;
rewrite /supervisor/(.*) /$1 break;
proxy_pass http://unix:/tmp/supervisor.sock:;
proxy_redirect off;
proxy_buffering off;
}
Eu tenho lutado com isso há muito tempo e não tenho certeza para onde ir.
Alguém poderia me apontar na direção certa?
Obrigado.
Editar:
Obrigado Richard, isso me ajudou a ir um pouco mais longe. Eu tive que mudar o redirecionamento para return 301 $scheme://$host$request_uri/;
para fazê-lo funcionar aqui, mas agora ele redireciona para supervisor /
Parece ok agora, mas pressionar refresh, reiniciar etc. funciona para o comando, mas não retorna para / supervisor /. Eu mudei supervisord para inet_server para testar e quando vou para example.com:9001 tudo funciona bem. Eu tentei proxy para servidor inet, mas ainda não funciona.
Por exemplo. o botão de atualização envia: /supervisor/index.html?action=refresh
e retorna com /?message=Page%20refreshed%20at%20Sat%20Jul%20%201%2014%3A10%3A27%202017
Parece que ele não retorna para / supervisor /, mas para a raiz do servidor (example.com/?message = ...)? Alguma idéia de como eu posso consertar isso?
Edit2:
Ok depois de googling por horas eu fiz essa solução que funciona para mim. Leia que eu deveria ficar longe de se em nginx, então provavelmente não é uma ótima solução. Pelo menos funciona aqui agora. Eu adicionei isso ao meu conf:
if ($http_referer ~* example.com/supervisor ) {
set $test supervisor;
}
if ($request_uri ~* message ) {
set $test "${test}+message";
}
if ($request_uri !~ supervisor ) {
set $test "${test}+addsup";
}
if ($test = "supervisor+message+addsup") {
return $scheme://$host/supervisor$request_uri;
break;
}