Discourse가 게시물 아래 댓글을 자동으로 연결하지 않음

WP Rocket이면 괜찮을 겁니다. Discourse 댓글이 표시되는 WordPress 페이지에서 캐시를 무효화하기 위해 몇 가지 조정이 필요할 수 있습니다. 여기 좋은 제안이 있습니다: WP Discourse comment webhook does not trigger a WP Rocket Cache refresh - #13 by Brandon007. WP Discourse의 “ajax load” 옵션도 합리적인 우회 방법입니다.

이것이 실제 문제인 것 같습니다:
[2024-03-14 06:02:59] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13514,"http_code":403}

이는 WP Discourse 플러그인이 댓글을 가져오려고 할 때 Discourse가 403 응답(금지됨)을 반환하고 있다는 것을 의미합니다. (해당 오류는 여기서 기록되고 있습니다: wp-discourse/lib/discourse-comment.php at main · discourse/wp-discourse · GitHub)

추측은 조금 있지만, 이 플러그인은 WordPress 사이트가 프록시 뒤에 있음을 시사합니다:

이것이 Discourse에서 403 오류를 유발하고 있을 수 있습니다. 아마도 요청 헤더가 올바르게 구성되지 않은 것일까요? 이 부분은 제가 잘 아는 분야가 아닙니다. 하지만 WordPress에서 게시물을 게시하면서 Discourse 사이트의 오류 로그(Error Logs) 페이지를 열어두면 문제가 무엇인지 확인할 수 있을 것입니다.

오류 로그 페이지로 이동하려면 이 링크를 클릭하세요:

403 응답이 로그에 항목을 남길 것이라 생각합니다. 만약 그렇다면 (개인정보를 가린) 오류 메시지를 여기에 공유해 주세요.

감사합니다! 가능하면 빨리 시도해 보겠습니다.

또한 이전 캐싱은 GridPane Redis Object Cache와 Nginx Helper 플러그인에서 제대로 작동했던 것 같습니다. 그래서 WP Rocket을 설치한 것이 불필요했을 수도 있겠네요. 하지만 그 중 하나를 비활성화해도 상황이 나아지지 않았습니다.

현재 댓글 수가 제대로 표시되지도 않습니다. 캐시를 비워도 최신 게시물의 댓글 수가 16으로 고정되어 있습니다(현재 discourse에는 18개의 댓글이 있습니다).

앞서 언급했듯이: ajax 옵션은 활성화되어 있습니다.

로그 관련 작업은 나중에 또는 내일에 처리하겠습니다.

네, 인기 있는 캐싱 플러그인 중 어떤 것이든 작동할 것입니다. 하나를 설치하고 그것이 어떤 역할을 하는지 파악해 보세요. 문제를 디버깅할 때는 캐싱을 일시적으로 비활성화하는 것이 도움이 될 수 있습니다. 이렇게 하면 캐시 관련 문제가 아닌지 확인할 수 있습니다.

댓글 수는 이 오류를 반환하는 함수에서 설정됩니다:

[2024-03-14 06:02:59] comment.ERROR: sync_comments.response_error {"message":"Forbidden","discourse_topic_id":"","wp_post_id":13514,"http_code":403}

아직도 해당 오류가 발생하고 있다면, 댓글 수는 업데이트되지 않을 것입니다.

사이트에 Proxy Real IP - 1.1 플러그인이 설치되어 있다는 것은 서버 구성이 상당히 복잡하다는 것을 시사합니다. 사이트를 설정한 사람에게 세부 사항을 문의해 보는 것이 좋습니다. 또한 이러한 문제를 대신 처리해 주는 호스팅 서비스로 사이트를 이전하는 것도 고려해 볼 수 있습니다.

어제보다 이 문제가 Discourse 오류 로그에 나타날 것이라고 확신하지는 않지만, 그래도 시도해 볼 가치가 있습니다.

이 플러그인은 설치되어 있지만, 독일어 페이지에서는 비활성화되어 있고 영어 페이지에서만 활성화되어 있습니다. 몇 주 전에 이 페이지를 맡기 전의 담당자에게 해당 플러그인에 대해 물어본 적이 있는데, 영어 페이지에서도 비활성화하는 것을 잊어버렸네요. Discourse는 비활성화된 상태인 독일어 페이지에만 연결되어 있습니다. 따라서 현재로서는 기능이 없는 것으로 보입니다.

이런 기술적인 사항들에 대해 더 잘 알고 싶다는 생각이 듭니다. 가끔 워드프레스가 매우 느리게 느껴지기도 하는데, 인터넷에서 여기저기 찾아보아도 이런 복잡한 내용들을 제대로 파악하기가 쉽지 않거든요.

정리하자면: 제가 주로 언급하는 것은 miasanrot.de 사이트이며, miasanrot.com은 Discourse에 연결되어 있지 않습니다. 따라서 이 사이트는 워드프레스의 기본 댓글 시스템을 사용하고 있습니다.

감각이 맞습니다. 오류 로그를 켜고 게시물을 게시했지만, Discourse 오류 로그에는 나타나지 않았습니다.

이제 더 나빠졌습니다: WP에 로그인하지 않은 사용자들에게 새 게시물이 표시되지 않습니다. 즉, 페이지가 동결된 것처럼 보입니다.

업데이트 2: 이제 댓글의 올바른 개수와 함께 새 게시물이 표시되지만, 정확히 무엇이 변경되었는지 잘 모르겠습니다. 한 가지 추측: 이전에 언급한 두 개의 캐싱 플러그인을 비활성화하고 WP Rocket만 활성화해 두었습니다. 두 플러그인을 다시 활성화해 보았지만 아무런 변화가 없었습니다. 그런 다음 편집기에서 게시물을 업데이트했고, 그때 제대로 작동했습니다. 두 플러그인 중 하나(nginx helper)는 "게시물이 편집/게시될 때마다 nginx의 fastcgi/proxy 캐시 또는 redis-cache를 정리합니다. 또한 몇 가지 다른 작업도 수행합니다."라고 설명하고 있습니다. 그래서 이 과정이 페이지가 올바르게 표시되도록 도운 것으로 추정됩니다.

그렇다면 이제 WP Rocket을 비활성화할 수 있을 것 같지만, 캐싱 관련해서 여전히 뭔가 이상한 부분이 있고, 이것이 Discourse 문제와 연결되어 있을 수 있다는 느낌을 지우기 어렵습니다.

가장 큰 문제는 분명 다른 데에 있지만, 왜 Nginx-helper를 사용하시나요? WP Rocket은 정적 카피를 생성하므로, fastcgi와 Redis를 위한 별도의 캐시가 필요하지 않습니다. 물론 WP Rocket이 사용되고 있더라도 PHP 호출에 캐싱이 필요한 상황이 있지만, 그런 사이트들은 일반적으로 WP Rocket이 아닌 훨씬 더 전문적인 도구를 사용합니다.

하지만 캐싱은 동적인 처리가 일어나지 않음을 의미합니다.

이 블로그를 인수했을 때 이미 설치되어 있었습니다. 솔직히 왜 그랬는지는 모르겠어요. 다만 이 플러그인을 비활성화하면 페이지가 업데이트되지 않는다는 것만 알고 있습니다. 그래서 네, 그 방향으로 문제가 있을 수 있겠네요.

수정: 방금 확인해 보았습니다. 플러그인을 비활성화하니 페이지를 업데이트할 수 없었습니다. 플러그인을 활성화한 뒤 기사를 업데이트하니 올바른 댓글 수가 표시되었습니다.

아마추어적인 추측이지만, wp-config.php가 무엇을 하려고 하는지 살펴보는 것이 좋습니다. 아주 첫 몇 줄에서 단서를 얻을 수 있을지도 모릅니다.

다시 한번 말씀드리지만, 모든 플러그인을 비활성화하고 2020과 같은 기본 테마 중 하나를 사용한 후 Discourse가 정상적으로 작동하는지 확인해 보세요. 정상적으로 작동한다면, 플러그인이나 테마 중 하나가 문제인 것입니다.

먼저 데이터베이스를 백업하세요. 플러그인과 테마를 비활성화하면 원치 않는 문제가 발생할 수 있습니다. 아직 WP-CLI를 설치하지 않았다면 검색해 볼 가치가 있습니다.

하지만 여전히 문제가 해결되지 않는다면… 이곳의 고수 중 누군가가 도움을 줄 수 있기를 바랍니다.

어쨌든, 어떤 플러그인을 사용 중인지, 그리고 그것들이 정말로 필요한지 고려해 보시기 바랍니다.

시간이 나고 트래픽이 그렇게 크지 않을 때 이 작업을 진행할 계획입니다. 현재는 이러한 테스트를 수행할 수 있는 날을 찾는 것이 복잡한 상황입니다. 하지만 반드시 실행할 것입니다.

한 가지 더 관찰한 점:
사전에 비공개로 게시하지 않고 기사를 바로 게시할 때 (보통 바로 게시하고 싶지 않을 때 이렇게 합니다), discourse가 주제를 기사에 올바르게 연결합니다. (표시되는 댓글 수는 여전히 잘못되지만, 댓글은 기사 아래에 표시됩니다)

저도 같은 문제를 겪고 있습니다. 댓글이 더 이상 표시되지 않고, sync_comments 오류가 발생하고 있습니다. 정확히 언제부터 그랬는지는 모르겠지만, 가끔 WordPress와 플러그인을 업데이트는 합니다.

안녕하세요 @steelmaiden, Support > WordPress 채널에 새로운 주제를 만들어 주세요.

  1. 확인된 동작을 설명해 주세요.
  2. 기대하는 동작을 설명해 주세요.
  3. 오류 로그가 있다면, 로그 뷰어에서 확인하거나 다운로드한 “meta” 파일과 함께 공유해 주세요.

감사합니다.