업로드 경로에 80 포트가 있지만 프로토콜은 https입니다

최근에 장기간 운영해 온 Discourse 인스턴스를 새 인스턴스로 복원했습니다.

현재 사용 중인 Discourse 버전은 3.6.0.beta2-latest입니다.

이제 업로드가 작동하지 않는 문제가 발생했습니다.

브라우저 콘솔을 확인해 보니 net::ERR_SSL_PROTOCOL_ERROR 오류가 많이 나고 있습니다.

네트워크 탭을 살펴보니 Chrome이 다음 URL을 가져오려고 하고 있습니다.

https://forum.robot.ba:80/uploads/default/optimized/4X/7/2/b/72be8d09005292d2f7ac37158b6d728a063f79ed_2_32x32.png

포트 80을 수동으로 제거하거나 프로토콜을 https에서 http로 변경하면 새 브라우저 창에서 링크를 수동으로 열 수 있습니다.

제 Discourse 인스턴스가 업로드 경로에 :80을 추가하는 이유가 무엇일까요?

사이트 설정에서 force https를 검색해 보았지만, 해당 설정이 켜져 있지 않거나 더 이상 존재하지 않는 것 같습니다.

app.yml 파일 내부에 문제가 있는 것일까요? 현재 다음과 같은 템플릿을 사용하고 있습니다:

(SSL 인증서가 없으므로 Letsencrypt를 사용하고자 합니다)

templates:

“templates/postgres.template.yml”

“templates/redis.template.yml”

“templates/web.template.yml”

“templates/web.ratelimited.template.yml”

Lets Encrypt(https)를 추가하려면 아래 두 줄의 주석을 해제하세요

“templates/web.ssl.template.yml”

“templates/web.letsencrypt.ssl.template.yml”


Let’s Encrypt를 사용하여 HTTPS를 설정하는 방법에 대한 가이드를 참고할 수 있습니다:

가능한 원인: 숨겨진 “Port” 설정

이전 또는 복원 후 데이터베이스에 숨겨진 port 사이트 설정이 남아 있을 수 있습니다.
이 경우 Discourse가 HTTPS URL에 잘못된 포트(예: :80)를 추가할 수 있습니다.

확인 및 수정 방법:

  1. 컨테이너에 진입합니다:
./launcher enter app
  1. Rails 콘솔을 엽니다:
rails c
  1. 현재 값을 확인합니다:
SiteSetting.port
  1. 80이 반환되면 값을 비웁니다:
SiteSetting.port = ""
  1. 그런 다음 모든 게시물과 자산을 다시 생성(rebake)하여 링크를 업데이트합니다:
Jobs.enqueue(:rebake_all_posts)