호스트 이름으로 IP를 사용해도 아이콘 주소가 localhost인 이유

CentOS 7.7에서 beginners-guide-to-install-discourse-for-development-using-docker/102009 가이드에 따라 Discourse 개발 버전을 설치했습니다.
세팅 단계는 다음과 같습니다:

  1. discourse.git에서 소스를 가져오기
  2. config/discourse_default.conf에서 이메일 발신자 설정 변경
  3. ./d/boot-env --init 실행
  4. ./d/unicorn 실행

호스트네임이 10.201.0.115와 같은 IP 주소로 설정되어 있습니다.
10.201.0.115:9292를 통해 Discourse에 접근할 수 있지만, 모든 이미지가 표시되지 않습니다.

Failed to load resource: net::ERR_CONNECTION_REFUSED from http://localhost:9292/images/discourse-logo-sketch.png
하지만 http://10.201.0.115:9292/images/discourse-logo-sketch.png를 사용하면 png 파일을 가져올 수 있습니다.

또한 답변 아이콘도 가져오지 못합니다.
원인이 localhost가 아니라 IP 10.201.0.115여야 한다는 것은 알고 있습니다.

IP 관련해서 무엇을 설정해야 하나요?

도움 주시는 모든 분께 감사합니다.

@pfaffman님, 도와주실 수 있나요?
정말 감사합니다!

제 해결책은 포트 3000에서 localhost를 사용하는 것입니다. 이것이 제가 권장하는 방법입니다.

정말 감사합니다.
말씀하신 대로 웹사이트가 다른 사용자에게 공개되어 있지 않다는 뜻이군요.
저희는 회사 내부에서 Discourse를 사용하며, 회사 로컬 네트워크에 있는 사람들이 웹사이트에 접근할 수 있습니다.
이런 상황에서 어떻게 해야 할까요?

@pfaffman
의미가 app.yml에서 DISCOURSE_HOSTNAME= localhost만 설정하면 된다는 건가요?
추가로 해야 할 것이 있을까요?
올바른 설정 예시를 보여줄 수 있을까요?

개발 버전을 설치하셨는데, 이는 Discourse 소스 코드를 수정하기 위한 로컬 설치입니다. 여러 사람이 소프트웨어를 실제로 사용하기 위한 용도로 설계된 것이 아닙니다.

Discourse를 사용하시려면 Discourse 공식 표준 설치를 따르십시오.

네, 감사합니다!
하지만 말씀해 주신 주소 그대로 discourse.git 대신 discourse_docker.git를 사용하여 다른 버전을 설치했습니다.
문제는 80 포트가 다른 웹사이트에서 사용 중이라 사용할 수 없다는 점입니다.
따라서 80 포트 대신 다른 포트를 사용해야 합니다.
포트를 28080으로 변경했고, 이제 Discourse의 메인 웹사이트에는 접근할 수 있습니다.
하지만 새로운 문제가 생겼습니다: 아이콘이나 PNG 주소가 새로운 포트 28080을 사용하지 않고, 단순히 IP 주소만으로 PNG를 가져오려고 합니다. 그러다 보니 접속이 안 되는 거죠.
올바른 PNG URL 주소는: http://10.120.0.115:28080/some.png
잘못된 PNG URL 주소는: http://10.120.0.115/some.png
80 포트 대신 다른 포트를 사용할 때 어떻게 해야 할까요?
@Falco @pfaffman
답변 기다리겠습니다.

Discourse는 표준 웹 포트인 80/443에서 실행되어야 합니다. Discourse가 해당 포트에서 직접 리스닝할 수 없다면, 해당 포트의 트래픽을 Discourse로 리디렉션하도록 리버스 프록시를 구성해야 하며, 서브도메인을 사용하는 것이 좋습니다.

감사합니다!
저도 Nginx 리버스 프록시를 사용 중입니다.
새로운 문제가 발생했습니다.

저는 docker run을 직접 사용했습니다.
/usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=8 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET= -e DISCOURSE_DB_HOST=10.201.0.116 -e DISCOURSE_DB_PORT=5432 -e LC_ALL=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e DISCOURSE_HOSTNAME=10.201.0.115 -e DISCOURSE_DEVELOPER_EMAILS=sheoixoet@gmail.com -e DISCOURSE_SMTP_ADDRESS=smtp.gmail.com -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=sheoixoet -e DISCOURSE_SMTP_PASSWORD=wpjedgfoiibrbffe -e DISCOURSE_SMTP_ENABLE_START_TLS=true -e DISCOURSE_SMTP_AUTHENTICATION=login -e DISCOURSE_SMTP_OPENSSL_VERIFY_MODE=none -e DISCOURSE_DB_NAME=discourse -e DISCOURSE_DB_USERNAME=postgres -e DISCOURSE_DB_PASSWORD=wetrwet@26 -h wetwrigp93-app --name app -t -p 28080:80 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:3a:0a:b4:ce:e9 --privileged local_discourse/app /sbin/boot

문제는 이겁니다:
브라우저 상태가 blocked(csp)? 로 표시됩니다.
어떻게 해야 하나요?
감사합니다.

@Falco @pfaffman
CSP 문제를 해결했습니다.
하지만 새로운 문제가 생겼습니다:
기본 포트 80을 28080으로 변경했는데,
png 주소에는 새 포트가 반영되지 않았습니다.
http://10.202.63.38/uploads/default/original/1X/3f10e1453ee931ddb6a9f5ab59d9e4578959fc33.jpeg
이 주소는 잘못된 것입니다.
올바른 주소는 다음과 같아야 합니다:
http://10.202.63.38:28080/uploads/default/original/1X/3f10e1453ee931ddb6a9f5ab59d9e4578959fc33.jpeg
웹에서 새 포트를 사용하도록 설정하는 방법이 있을까요?
감사합니다!

기꺼이 도와드리겠습니다. Redirecting… 를 참고해 주세요.

하지만 비표준 포트를 사용할 수 없다는 것을 이미 말씀 들으셨을 가능성이 높습니다.

정말 감사합니다!
말씀하신 대로 80 포트를 사용해야 하므로, 그렇게 하겠습니다.

다시 한번 말씀드리지만, 도메인이 10.202.63.38을 가리키고 있더라도 도메인이 필요합니다. 제이가 설정을 도와줄 수 있을 겁니다. 아마 기업 IT 부서와 이야기를 해야 할 것입니다 :slight_smile:

도와주셔서 감사합니다! :grinning: