app.yml 파일을 변경했습니다.
expose:
- "20632:80" # http
#- "443:443" # https
- "20633:443"
이 상태에서 https://mydomain.com:20633 을 통해 Discourse에 접속하려고 하면, 작동하지 않는 https://mydomain.com 으로 리다이렉트되는 문제가 발생합니다.
아래와 같이 설정을 변경하면
expose:
- "20632:20632" # http
#- "443:443" # https
- "20633:20633"
netstat -tulpn 명령어로 확인했을 때 해당 포트에서 리스닝 중인 것으로 보이지만, 실제로 접속을 시도하면 타임아웃이 발생합니다.
서브폴더에서 Discourse를 실행하는 방법에 대한 Serve Discourse from a subfolder (path prefix) instead of a subdomain 포럼 글을 찾았지만, 제 상황에는 적용되지 않습니다.
또한 Install Discourse on a residential internet with Cloudflare Tunnel 글도 찾았는데, 방향성은 맞지만 제가 원하는 내용과는 완전히 일치하지 않습니다.
P.S. 포럼 링크를 제거한 점 죄송합니다. 링크를 포함하면 게시가 불가능하기 때문입니다.
Falco
(Falco)
7월 17, 2023, 12:39오후
2
비표준 포트에서 실행하는 것은 지원하지 않습니다. 80/443 포트가 이미 사용 중이라면, 해당 포트가 비어 있는 별도의 서버를 사용하거나 다른 서비스와 Discourse 사이에 리버스 프록시를 구성해야 합니다.
pfaffman
(Jay Pfaffman)
7월 17, 2023, 1:05오후
3
가끔 "지원하지 않습니다"라는 말은 "여기서 기대할 수 있는 도움의 범위를 벗어났다"는 뜻이지만, 이번에는 "시도하는 것 자체가 시간 낭비다"라는 뜻입니다.
포트는 일반적인 의미에서 "점용"된 것이 아닙니다. Discourse는 해당 시스템에서 포트 80과 443을 사용할 수 있으며, 이미 별도의 서버에서 자체적으로 실행 중입니다.
현재 URL에서 포트를 제거하고 리다이렉션을 비활성화하는 단계에서 막혀 있으며, 이 부분을 해결하면 모든 것이 예상대로 작동할 것입니다.
Stephen
(Stephen)
7월 17, 2023, 1:47오후
5
그 리다이렉트를 막을 수 없습니다.
표준 포트에서 게시할 수 없다면 아예 작동하지 않습니다. 여기서는 :80/443 포트가 사용 가능한 서버를 사용하거나, 대체 토론 플랫폼을 선택하는 두 가지 선택지가 있습니다.
nginx 리버스 프록시 설정에 대해 도와줄 수 있나요?
여러 옵션을 시도해 봤지만 성공하지 못했습니다.
server {
listen 20633 ssl;
server_name mydomain.com;
ssl_certificate /etc/letsencrypt/live/mensa.myftp.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mensa.myftp.org/privkey.pem;
location / {
# 정규 표현식을 사용하여 proxy_pass URL에서 포트 제거
# 정규 표현식의 캡처된 부분($1)이 proxy_pass URL에서 대체됩니다.
# 실제 백엔드 서버 IP와 포트는 proxy_pass 지시문에서 별도로 지정됩니다.
proxy_pass http://192.168.178.31:80/
#$request_uri;
proxy_redirect http://192.168.178.31:80/ $scheme://$host:20633/;
#return 301 $scheme://$host:$server_port/home;
#proxy_redirect http://192.168.178.31:20633 $scheme://$host:80;
# 클라이언트가 백엔드 서버로 보낸 Host 헤더 유지
#proxy_set_header Host $host;
proxy_set_header Host $http_host;
}
}
Falco
(Falco)
7월 17, 2023, 9:36오후
7
Discourse와 동일한 머신에서 다른 웹사이트를 실행하는 방법에 대한 가이드를 확인하세요: Run other websites on the same machine as Discourse .
해당 튜토리얼은 유닉스 소켓을 통해 동일한 서버에서 실행하는 방법을 다루고 있습니다. 리버스 프록시를 다른 시스템에서 다른 포트와 함께 실행하기 위한 구성도 있을까요? 이런 경우가 더 자주 발생할 것 같아서 가능할 것이라 생각합니다. 다른 호스트에는 이미 인증서가 준비되어 있습니다.
분명히 말씀드리면: 이 설정은 테스트 전용입니다. 프로덕션 환경에서는 443 포트에서 실행될 예정이지만, 개발 및 테스트를 위해서는 집에 있는 VM이 완전히 충분하며, 그 사이에 서버를 임대하는 비용을 절약할 수 있습니다.