WP SSO + Discourse Multisite

Tenho duas instâncias separadas do Discourse e gostaria de consolidá-las em uma única instância multisite.

Segui o guia multisite para configurar um novo banco de dados e a construção foi bem-sucedida. O problema é que, ao navegar para o domínio da instância B, ele redireciona para a instância A (a original, vinculada ao SSO do WordPress). Isso significa que:

  1. ao acessar https://instanceb.discourse
  2. em vez disso, é redirecionado para https://instancea.discourse
  3. que, por sua vez, redireciona para a página de login do WordPress.

Como faço para que o novo contêiner multisite apareça?

Não me importo se o segundo contêiner também precisar de SSO — ele não foi configurado antes.

Como não consigo carregar a instância B, não consigo configurá-la ou importar a configuração.

Estou usando um proxy reverso Nginx para acessar ambas as instâncias.

Qualquer ajuda é bem-vinda.

Olá Tim,

Este é mais um caso de pergunta sobre multisite do Discourse, já que seu problema parece estar relacionado à relação entre suas duas instâncias do Discourse em multisite e, possivelmente, ao roteamento configurado entre elas. O SSO do WordPress não é o problema aqui, então reclassifiquei seu tópico para Support.

Gostaria de chamar a atenção para o seguinte aviso na documentação howto do multisite do Discourse:

Embora o multisite seja suportado na aplicação do Discourse, esta é uma configuração avançada de administração de sistemas. Se você não sabe o que está fazendo, não configure multisite. A equipe do Discourse não pode oferecer suporte à configuração de multisite.

Como nosso foco no Support > WordPress é mais no plugin do WordPress em si, e eu mesmo não sou especialista em multisite do Discourse, sua melhor opção pode ser verificar se alguém da comunidade pode apontá-lo na direção certa ou, então, contratar alguém para ajudá-lo no Marketplace.

2 curtidas

Isso parece ser um problema de multisite. Qual guia você seguiu?

Segui este guia:

Minha melhor suposição é que você configurou incorretamente seu proxy reverso e ele está redirecionando o site 2 para o site 1, ou talvez tenha feito isso antes e seu navegador tenha armazenado em cache o redirecionamento 301.

Estou usando a configuração padrão de proxy do nginx. A única alteração que fiz foi adicionar o instanceb no server_name, para que o tráfego fosse roteado para o container. Existe uma maneira diferente de fazer isso com o discourse multisite?

server {
    listen 443 ssl http2; listen [::]:443 ssl http2;
    server_name instancea.mydomain.com instanceb.mydomain.com

    ssl on;

        ssl_certificate /var/www/vhosts/mydomain.com.csr;
        ssl_certificate_key /var/www/vhosts/mydomain.com.key;

    ssl_session_tickets off;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA;

    http2_idle_timeout 5m; # aumentado do padrão de 3m

    location / {
        proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;

  proxy_connect_timeout       600;
  proxy_send_timeout          600;
  proxy_read_timeout          600;
  send_timeout                600;
    }
}