Problema no Nginx, ao parar e iniciar o app recebo "502 Bad Gateway"

quando eu faço ./launcher stop app e depois ./launcher start app, o site diz 502 Bad Gateway. não sei qual é o problema, tentei reconstruir mas não adiantou.

Por favor, me aconselhe como posso corrigir isso.

Você poderia compartilhar os logs de reconstrução?

root@amsaal:/var/discourse# ./launcher logs app
x86_64 arch detectado.
run-parts: executando /etc/runit/1.d/00-ensure-links
run-parts: executando /etc/runit/1.d/00-fix-var-logs
run-parts: executando /etc/runit/1.d/01-cleanup-web-pids
run-parts: executando /etc/runit/1.d/anacron
run-parts: executando /etc/runit/1.d/cleanup-pids
Limpando arquivos PID obsoletos
run-parts: executando /etc/runit/1.d/copy-env
run-parts: executando /etc/runit/1.d/letsencrypt
[Seg 15 Abr 2024 10:12:06 AM UTC] Domínios não alterados.
[Seg 15 Abr 2024 10:12:06 AM UTC] Pular, Próxima renovação em: 2024-06-12T11:28:31Z
[Seg 15 Abr 2024 10:12:06 AM UTC] Adicione '--force' para forçar a renovação.
[Seg 15 Abr 2024 10:12:07 AM UTC] Instalando chave em: /shared/ssl/amsaal.net.key
[Seg 15 Abr 2024 10:12:07 AM UTC] Instalando cadeia completa em: /shared/ssl/amsaal.net.cer
[Seg 15 Abr 2024 10:12:07 AM UTC] Executando comando de recarga: sv reload nginx
aviso: nginx: impossível abrir supervise/ok: arquivo não existe
[Seg 15 Abr 2024 10:12:07 AM UTC] Erro de recarga para :
[Seg 15 Abr 2024 10:12:07 AM UTC] Domínios não alterados.
[Seg 15 Abr 2024 10:12:07 AM UTC] Pular, Próxima renovação em: 2024-06-12T11:28:38Z
[Seg 15 Abr 2024 10:12:07 AM UTC] Adicione '--force' para forçar a renovação.
[Seg 15 Abr 2024 10:12:08 AM UTC] Instalando chave em: /shared/ssl/amsaal.net_ecc.key
[Seg 15 Abr 2024 10:12:08 AM UTC] Instalando cadeia completa em: /shared/ssl/amsaal.net_ecc.cer
[Seg 15 Abr 2024 10:12:08 AM UTC] Executando comando de recarga: sv reload nginx
aviso: nginx: impossível abrir supervise/ok: arquivo não existe
[Seg 15 Abr 2024 10:12:08 AM UTC] Erro de recarga para :
Started runsvdir, PID é 537
ok: run: redis: (pid 550) 0s
ok: run: postgres: (pid 551) 0s
nginx: [warn] a diretiva "listen ... http2" foi depreciada, use a diretiva "http2" em vez disso em /etc/nginx/conf.d/discourse.conf:60
supervisor pid: 545 unicorn pid: 577
root@amsaal:/var/discourse#

Não foi isso que eu quis dizer, você poderia executar ./launcher rebuild app e, em seguida, compartilhar a saída disso? (Além disso, por favor, coloque a saída entre blocos de código, isso torna o tópico mais fácil de ler)

Isso tornaria um pouco mais fácil para o usuário reconstruí-lo dessa forma, pois registrará a saída padrão em um arquivo

./launcher rebuild app >> rebuild.log
1 curtida

se você quiser arquivos diferentes por reconstrução:

./launcher rebuild app > "rebuild-$(date -Imin).log" 2>&1

Leva um minuto ou dois depois de iniciar o contêiner para que ele comece a servir conteúdo. Você tentou esperar alguns minutos antes de acessar o site?

1 curtida
x86_64 arch detectada.
Garantindo que o launcher esteja atualizado
Launcher está atualizado
Parando o container antigo
app
2.0.20231218-0429: Puxando de discourse/base
Digest: sha256:468f70b9bb4c6d0c6c2bbb3efc1a5e12d145eae57bdb6946b7fe5558beb52dc1
Status: Imagem está atualizada para discourse/base:2.0.20231218-0429
docker.io/discourse/base:2.0.20231218-0429
/usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
97:C 15 Apr 2024 18:52:04.329 # oO0OoO0OoO0Oo Redis está iniciando oO0OoO0OoO0Oo
97:C 15 Apr 2024 18:52:04.329 # Versão do Redis=7.0.7, bits=64, commit=00000000, modificado=0, pid=97, recém iniciado
97:C 15 Apr 2024 18:52:04.330 # Configuração carregada
97:M 15 Apr 2024 18:52:04.331 * Relógio monotônico: POSIX clock_gettime
97:M 15 Apr 2024 18:52:04.336 * Modo de execução=standalone, porta=6379.
97:M 15 Apr 2024 18:52:04.336 # Servidor inicializado
97:M 15 Apr 2024 18:52:04.337 * Carregando RDB produzido pela versão 7.0.7
97:M 15 Apr 2024 18:52:04.337 * Idade do RDB 31 segundos
97:M 15 Apr 2024 18:52:04.337 * Uso de memória do RDB quando criado 23.25 Mb
97:M 15 Apr 2024 18:52:04.451 * RDB carregado, chaves carregadas: 1351, chaves expiradas: 5.
97:M 15 Apr 2024 18:52:04.461 * DB carregado do disco: 0.124 segundos
97:M 15 Apr 2024 18:52:04.461 * Pronto para aceitar conexões
3507:C 15 Apr 2024 18:58:01.238 # oO0OoO0OoO0Oo Redis está iniciando oO0OoO0OoO0Oo
3507:C 15 Apr 2024 18:58:01.238 # Versão do Redis=7.0.7, bits=64, commit=00000000, modificado=0, pid=3507, recém iniciado
3507:C 15 Apr 2024 18:58:01.238 # Configuração carregada
3507:M 15 Apr 2024 18:58:01.239 * Relógio monotônico: POSIX clock_gettime
3507:M 15 Apr 2024 18:58:01.240 # Aviso: Não foi possível criar o socket de escuta TCP do servidor *:6379: bind: Endereço já em uso
3507:M 15 Apr 2024 18:58:01.240 # Falha ao escutar na porta 6379 (TCP), abortando.
97:M 15 Apr 2024 18:58:27.220 * 100 alterações em 300 segundos. Salvando...
97:M 15 Apr 2024 18:58:27.223 * Salvamento em segundo plano iniciado pelo pid 3555
3555:C 15 Apr 2024 18:58:30.967 * DB salvo em disco
3555:C 15 Apr 2024 18:58:30.969 * Fork CoW para RDB: atual 1 MB, pico 1 MB, média 1 MB
97:M 15 Apr 2024 18:58:31.058 * Salvamento em segundo plano encerrado com sucesso
97:M 15 Apr 2024 19:03:32.047 * 100 alterações em 300 segundos. Salvando...
97:M 15 Apr 2024 19:03:32.063 * Salvamento em segundo plano iniciado pelo pid 3634
3634:C 15 Apr 2024 19:03:37.774 * DB salvo em disco
3634:C 15 Apr 2024 19:03:37.777 * Fork CoW para RDB: atual 1 MB, pico 1 MB, média 1 MB
97:M 15 Apr 2024 19:03:37.828 * Salvamento em segundo plano encerrado com sucesso
97:signal-handler (1713208309) SIGTERM recebido, agendando desligamento...
97:M 15 Apr 2024 19:11:49.130 # Desligamento solicitado pelo usuário...
97:M 15 Apr 2024 19:11:49.131 * Salvando o snapshot RDB final antes de sair.
97:M 15 Apr 2024 19:11:52.592 * DB salvo em disco
97:M 15 Apr 2024 19:11:52.593 # Redis está pronto para sair, até mais...
sha256:066d1fc0bf450b6f9043e13960cafef6b7751d92f0d89cc4e0865208293ce2e2
58661874f252e2e9dac3955608dbbe90e60f020a4d307d2818e7f991d39f8010
Removendo container antigo
app

ea032a7acab7743f4ef8de3b9a536da0dbbf36b8c9dd5b2a9add0cfb01286e5d

sim, então, após a conclusão do processo de reconstrução após 30 segundos, o site não estava funcionando com erro 502 gateway, então eu fiz /launch restart app com launch start app, então funcionou.

então, talvez haja algo acontecendo

Isso… Parece um log incompleto. Ele realmente termina aí, ou apenas pausa por um longo período? Se for a segunda opção, talvez você precise de mais RAM/swap.

Tente esperar 60 segundos.

1 curtida

pode ser pausa ou pode levar muito tempo, quase 30 minutos para terminar a reconstrução, acho que é a RAM com apenas 2 GB que pode deixar as coisas lentas, mas não tenho problemas de memória no momento. é apenas lento, normalmente não deve levar mais de 1-2 minutos dependendo da especificação.

Minha especificação de VPS abaixo.

CPU: AMD EPYC 7551P 32 núcleos, 2000 MHz
RAM: 2 GB
SSD: 60 GB

Você não teria um 502 se o contêiner não estivesse em execução. Se você tivesse esperado um pouco mais, o site teria começado a funcionar.

Não é que parar e iniciar tenha feito alguma coisa, é apenas que você esperou muito tempo quando fez a reinicialização.

É esperado que você tenha um erro 502 por um período de tempo enquanto o contêiner inicia. Você não tem um problema.

1 curtida

sinceramente, isso não está muito fora do comum, reconstruções não são rápidas, especialmente quando…

…você não tem muita memória.

Geralmente, pelo menos 4 GB de memória total (RAM e swap) são recomendados para o Discourse atualmente.

Ao atualizar o discourse pela interface de administração, estou recebendo este aviso de problemas incompatíveis

warning Resolution field "unset-value@2.0.1" is incompatible with requested version "unset-value@^1.0.0"
[3/5] Fetching packages...
warning Pattern ["wrap-ansi-cjs@npm:wrap-ansi@^7.0.0"] is trying to unpack in the same destination "/home/discourse/.cache/yarn/v6/npm-wrap-ansi-cjs-7.0.0-67e145cff510a6a6984bdf1152911d69d2eb9e43-integrity/node_modules/wrap-ansi-cjs" as pattern ["wrap-ansi@^7.0.0"]. This could result in non-deterministic behavior, skipping.
[4/5] Linking dependencies...
warning "@discourse/lint-configs > eslint-plugin-ember > ember-eslint-parser@0.3.8" has unmet peer dependency "@typescript-eslint/parser@^6.15.0".
warning "> @glint/environment-ember-loose@1.4.0" has unmet peer dependency "@glimmer/component@^1.1.2".
warning "> discourse-markdown-it@1.0.0" has unmet peer dependency "xss@*".
warning "workspace-aggregator-e69f39ff-3f17-47f3-9e20-638bb7914a45 > discourse > @uppy/aws-s3@3.0.6" has incorrect peer dependency "@uppy/core@^3.1.2".
warning "workspace-aggregator-e69f39ff-3f17-47f3-9e20-638bb7914a45 > discourse > @uppy/aws-s3-multipart@3.1.3" has incorrect peer dependency "@uppy/core@^3.1.2".
warning "workspace-aggregator-e69f39ff-3f17-47f3-9e20-638bb7914a45 > discourse > @uppy/xhr-upload@3.1.1" has incorrect peer dependency "@uppy/core@^3.1.2".
warning "workspace-aggregator-e69f39ff-3f17-47f3-9e20-638bb7914a45 > discourse-plugins > ember-this-fallback@0.4.0" has unmet peer dependency "ember-source@^3.28.11 || ^4.0.0".
warning "workspace-aggregator-e69f39ff-3f17-47f3-9e20-638bb7914a45 > admin > ember-source > router_js@8.0.3" has unmet peer dependency "rsvp@^4.8.5".
warning "workspace-aggregator-e69f39ff-3f17-47f3-9e20-638bb7914a45 > discourse > @uppy/aws-s3 > @uppy/xhr-upload@3.3.0" has incorrect peer dependency "@uppy/core@^3.2.1".

Esses podem ser ignorados, não impedirão o Discourse de reconstruir.