WP SSO + Discourse 멀티사이트

저는 discourse 인스턴스를 2개 별도로 운영하고 있으며, 이를 단일 멀티사이트 인스턴스로 통합하고 싶습니다.

멀티사이트 가이드에 따라 새 데이터베이스를 설정했는데 빌드는 정상적으로 완료되었습니다. 문제는 인스턴스 b의 도메인으로 접속하면 인스턴스 a(WordPress SSO에 연결된 원래 인스턴스)로 리디렉션된다는 것입니다. 즉:

  1. https://instanceb.discourse로 접속하면
  2. 대신 https://instancea.discourse로 리디렉션되고
  3. 그 다음에 WordPress 로그인 페이지로 리디렉션됩니다.

새로운 멀티사이트 컨테이너가 어떻게 표시되게 할 수 있을까요?

두 번째 컨테이너에도 SSO가 필요하더라도 괜찮습니다. 이전에는 설정되어 있지 않았으니까요.

instanceb를 로드할 수 없어서 설정을 구성하거나 설정을 가져올 수 없습니다.

두 인스턴스에 모두 접근하기 위해 nginx 리버스 프록시를 사용하고 있습니다.

도움을 주시면 감사하겠습니다.

팀님,

이 문제는 두 개의 Discourse 멀티사이트 인스턴스 간의 관계, 그리고 두 인스턴스 사이에 설정된 라우팅과 관련이 있어 Discourse 멀티사이트에 대한 질문으로 보는 것이 더 적합합니다. WordPress SSO는 이 문제의 원인이 아니므로, 해당 주제를 Support 카테고리로 재분류했습니다.

Discourse 멀티사이트 howto 문서에 다음과 같은 경고가 있습니다.

멀티사이트는 Discourse 애플리케이션에서 지원되지만, 이는 고급 시스템 관리자 설정입니다. 무엇을 하는지 모른다면 멀티사이트를 설정하지 마십시오. Discourse 팀은 멀티사이트 구성에 대한 지원을 제공할 수 없습니다.

저희는 #support:wordpress에서 WordPress 플러그인 자체에 더 초점을 맞추고 있으며, 저도 Discourse 멀티사이트 전문가가 아니므로, 커뮤니티에서 누군가가 올바른 방향을 제시해 주기를 기다리거나 #marketplace에서 도움을 줄 사람을 고용하는 것이 가장 좋은 방법일 수 있습니다.

멀티사이트 문제인 것 같습니다. 어떤 가이드를 따랐나요?

이 가이드를 따랐습니다:

제 생각에는 리버스 프록시가 잘못 설정되어 사이트 2가 사이트 1로 리다이렉트되고 있거나, 이전에 그렇게 되어서 브라우저에 301 리다이렉트가 캐시된 것 같습니다.

표준 nginx 프록시 설정을 사용하고 있습니다. 제가 변경한 부분은 instanceb를 server_name에 추가하여 트래픽이 컨테이너로 라우팅되도록 한 것입니다. 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; # 기본값 3m에서 5m로 상향

    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;
    }
}