Site fora do ar - app não inicia, conflito na porta 443?

Tenho o Discourse instalado em um VPS Ubuntu 18.04 seguindo as instruções de instalação padrão. Ele está funcionando bem há alguns anos, mas quando acessei meu site hoje à tarde, o certificado TLS estava expirado - e como ele usa HSTS, isso significa que fui completamente bloqueado do site. Fácil, pensei, SSH para o servidor, instale atualizações (apenas por precaução), execute ./launcher rebuild app, e tudo ficará bem.

Não, não funcionou assim; recebi uma página de “ops”. Então decidi reiniciar o sistema, e agora estou recebendo uma página 502 quando tento acessá-lo. Não consigo iniciar app:

root@talk:/var/discourse# ./launcher start app
x86_64 arch detected.

starting up existing container
+ /usr/bin/docker start app
Error response from daemon: driver failed programming external connectivity on endpoint app (e5db356e19c947c3e1e20a337aea7ee4bdcfa9bc5f3eac485e76439f3ed3a0e9): Bind for 0.0.0.0:443 failed: port is already allocated
Error: failed to start containers: app

…e de fato há algo escutando na porta 443:

root@talk:/var/discourse# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      906/docker-proxy    
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      427/systemd-resolve 
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      918/docker-proxy    
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      892/docker-proxy    
tcp6       0      0 :::9936                 :::*                    LISTEN      578/sshd            
udp        0      0 127.0.0.53:53           0.0.0.0:*                           427/systemd-resolve 

Estou perdido - o que devo verificar a seguir?

3 curtidas

Faz muito tempo que você não faz uma reconstrução? Houve algum erro? Disse algo sobre a atualização do postgres? Talvez reconstrua novamente.

2 curtidas

Outra coisa que você pode verificar é se outro contêiner do Discourse está em execução, por exemplo, import. Executar o comando a seguir e, se houver contêineres adicionais, observar as colunas de status e portas responderá a isso:

docker container ls
2 curtidas

Tenho mantido o site atualizado; lembro-me da atualização do postgres há algum tempo e eu cuidei disso na época. Não me lembro de ter visto nada sobre isso desta vez, mas é fácil o suficiente executar outra reconstrução. Mas, enquanto fazia isso, vi:

…e, de fato, import está em execução. Então eu parei isso, e assim que a reconstrução terminou, o site voltou a funcionar.

E o certificado Let’s Encrypt foi renovado (parece que vários foram emitidos hoje, o que é um pouco problemático), então tudo voltou ao normal agora. Obrigado pela resposta rápida.

3 curtidas

Então você quer.

  ./launcher destroy import
3 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.