Execute outros sites na mesma máquina do Discourse

Então você quer Servir o Discourse a partir de uma subpasta (prefixo de caminho) em vez de um subdomínio?

1 curtida

Legal. Parece o que eu estou procurando. Obrigado.

1 curtida

Como posso entrar nisso?? Quero dizer, como encontro essa parte?? Existem 2 conjuntos das mesmas linhas! Quais devem ser editadas ou alteradas?

EDITAR a partir daqui:

Esquece, cara..! Obrigado pelo seu tempo! Descobri sozinho :upside_down_face:

A propósito, o seu método não está funcionando muito bem.

2 curtidas

Você também precisa configurar as variáveis de ambiente pelo menos no Discourse 3.

Abra seu app.yml

e procure pelas variáveis de ambiente e preencha-as.

Obrigado por isso,
Eu configurei o primeiro discourse standalone, que me mostra a página de registro correta em http. Eu então instalei o nginx, mas sem certificado, porque uso em laboratório de teste sem acesso Lets Encrypt. Eu agora vejo a página de registro, mas sem estilo. Nos logs do nginx no host, vejo erros 404. Alguma ideia para resolver isso?
Obrigado
Resolvido: eu tenho que comentar try_files $uri $uri/ =404;", que é o padrão no debian 11 e nginx 18.0-6.

1 curtida

Erros. Após configurar isso, o navegador Chrome exibe erros:

Conteúdo Misto: A página em '\u003cURL\u003e' foi carregada via HTTPS, mas solicitou uma fonte insegura '\u003cURL\u003e'. Esta solicitação foi bloqueada; o conteúdo deve ser servido via HTTPS.

1 curtida

Você ativou force_https?

1 curtida

Sim, eu fiz isso na etapa certbot --nginx. E eu tentei muitas vezes, não funcionou.

Você precisa definir a configuração do discourse force_https, não no nginx. É melhor fazer isso com uma variável de ambiente, mas você pode fazer isso na ux se conseguir acessar admin/configurações.

2 curtidas

Segui os passos acima e executei o nginx com sucesso, mas ao acessar o URL, recebi um erro ERR_TOO_MANY_REDIRECTS.



Alguém pode me ajudar a entender o porquê?

bind() para unix:/shared/nginx.http.sock falhou (95: Operação não suportada)

Então estou confuso, não consigo executar /discourse-setup porque estou instalando em um servidor web existente, mas devo editar um arquivo .yml que não é criado a menos que eu execute /discourse-setup. Portanto, app.yml não existe, como posso editá-lo?

Copie standalone.yml do diretório de exemplos.

Sinto-me um idiota depois de ter percorrido este post vinte vezes e ter perdido que a última linha dessa seção dizia “Adicionado”. Posso sugerir que @riking modifique a introdução para ser assim:

1 curtida

Fiz a alteração sugerida (e apaguei posts sobre se era um wiki que aparentemente seu nível de confiança impede você de editar – desculpe por isso). É uma alteração sutil, mas acho que pode ajudar outros. Obrigado.

2 curtidas

Tenho uma configuração ligeiramente diferente: meu proxy reverso não está rodando na máquina host, mas em um contêiner docker separado.
Atualmente, estou usando uma rede docker para conectar os dois, então não estou expondo o discourse via soquete unix.

Funciona bem, mas tem uma desvantagem significativa: o rate limiting só vê o IP do proxy reverso e, portanto, erroneamente limita a taxa do proxy reverso…

Vejo várias opções:

  1. Remover o template de rate limiting. (Não é uma ótima opção…)
  2. Criar meu próprio template que configura o nginx para set_real_ip_from o proxy reverso.
  3. Ajustar o template de rate limiting para usar $http_x_forwarded_for em vez de $binary_remote_addr.
  4. Expor o soquete unix no contêiner do proxy reverso. (Não sei se/como é possível.)

Idealmente, eu não criaria meu próprio template nem alteraria os existentes, mas usaria a configuração padrão o mais próximo possível, ou seja, a opção 4.

Alguma ideia? Prós/contras? Pensamentos?

Entendo que você teve esse problema há muito tempo, mas acabei de me deparar com ele hoje à noite e encontrei uma solução que funcionou para mim.

Meu problema era com meu registrador agindo como um proxy com configurações SSL/TLS definidas como “flexível”. Mudar para “Completo” resolveu o problema imediatamente - eu só queria que isso tivesse ocorrido a mim antes de reconstruir ~20 vezes.

1 curtida

O que se entende por uma instalação de dois contêineres? Obrigado.

1 curtida

Um contêiner é um conceito do Docker e é efetivamente uma unidade de processamento isolada que pode ter configuração independente do sistema operacional.

Normalmente, o Discourse e todas as suas dependências (na instalação padrão) rodam em um único contêiner.

Existem instalações mais avançadas onde outros serviços podem rodar em outro contêiner e até mesmo uma onde o Discourse é dividido em dois (um para banco de dados e um para web) - uma “instalação de dois contêineres”.

NB O Discourse usa seu próprio lançador personalizado que não é exatamente o mesmo que o usado pelo Docker padrão.

5 curtidas

Tenho uma pergunta: se um proxy reverso estiver em um contêiner Docker separado, ele ainda poderá usar soquetes Unix?