Isso provavelmente não é causado diretamente pelo proxy reverso.
Para posts criados via API, o Discourse utiliza o DistributedMemoizer ao redor de PostsController#create para evitar a criação duplicada de posts pela API. Esse memoizer usa um DistributedMutex baseado em Redis com um tempo de validade muito curto de 1 segundo. O aviso indica que o trabalho de criação/serialização do post dentro dessa trava levou mais tempo do que o esperado.
Portanto:
- se o post da API for criado com sucesso, trata-se de um aviso e não da falha raiz;
expected max: 1 secs, took an extra 1 secssignifica que a trava foi mantida por aproximadamente 2 segundos;- é mais provável que esteja relacionado ao desempenho do servidor, latência do Redis/Postgres, E/S de disco, pressão de CPU/RAM, plugins ou processamento lento do post do que ao próprio proxy reverso nginx/1Panel;
- o motivo de aparecer apenas para postagem via API é que esse caminho do memoizer é utilizado para solicitações da API.
Coisas que valem a pena verificar:
- A solicitação da API tem sucesso e cria apenas um post?
- Quanto tempo a solicitação da API leva do lado do cliente?
- CPU, memória, swap ou E/S de disco estão saturados durante a postagem via API?
- O Redis e o Postgres estão dentro do mesmo container/host e estão saudáveis?
- O aviso ainda ocorre com um post de texto simples muito pequeno, sem imagens/uploads?
- Há plugins não padrão instalados?
Como se trata de uma implantação via 1Panel/container e não da instalação padrão do Discourse via Docker, também pode ser útil reproduzir o problema em uma instalação oficialmente suportada, se possível, antes de tratá-lo como um bug do núcleo do Discourse.