JJoriping / KKuTu

글자로 놀자! 끄투 온라인
http://jjo.kr/kkutu
GNU General Public License v3.0
332 stars 265 forks source link

클라우드플레어 프록시 사용 #1116

Closed NOAH01112 closed 2 months ago

NOAH01112 commented 2 months ago

https://github.com/JJoriping/KKuTu/issues/870 이거 보고 이해가 안 되서 질문드립니다.

global.json에서 메인 포트는 변경했는데 또 어디서 무슨 포트를 변경해야 하는 건가요?

NOAH01112 commented 2 months ago

무슨 코드를 수정해야 할까요

NOAH01112 commented 2 months ago

코드에서 "port: 2087," 식으로 바꿔봤는데 이러면 그냥 모든 서버가 꺼진 걸로 나오네요

lshqqytiger commented 2 months ago

870번 이슈와 상관 없이 포트만 설정하셔도 방 입장에 문제 없도록 수정됐습니다.

NOAH01112 commented 2 months ago

image 어 근데 이 상태에서 안 넘어가지는데요

NOAH01112 commented 2 months ago

근데 localhost는 또 잘 됩니다

Preta-Crowz commented 2 months ago

콘솔에 표시된 오류 내용을 확인해주세요.

lshqqytiger commented 2 months ago

PR 내용을 모두 반영하셨는지 (global.json 포함), MAIN_PORTSROOM_PORTS 값이 클라우드플레어에서 지원하는 포트인지 확인해보세요.

NOAH01112 commented 2 months ago

MAIN_PORTS는 클플에서 지원하는 포트 맞고 ROOM_PORTS는 어디서 변경하나요?

lshqqytiger commented 2 months ago

둘 다 global.json에 있어야합니다.

NOAH01112 commented 2 months ago

global.json에 있는 포트라곤 MAIN_PORTS랑 PG_PORT밖에 없습니다

lshqqytiger commented 2 months ago

global.inc.json의 변경 사항은 당연히 global.json에도 반영해주셔야 합니다. global.json의 양식이 global.inc.json이니까요.

NOAH01112 commented 2 months ago

해 봤는데 똑같습니다

lshqqytiger commented 2 months ago

그럼 개발자 도구 콘솔 내용을 올려주세요.

NOAH01112 commented 2 months ago

image 이렇게 뜹니다

lshqqytiger commented 2 months ago

global.json의 WAF 값이 true인지 확인해보세요.

NOAH01112 commented 2 months ago

true입니다

lshqqytiger commented 2 months ago

global.json을 마지막으로 수정한 후 서버 재부팅하셨나요

NOAH01112 commented 2 months ago

lshqqytiger commented 2 months ago

PR #871 을 병합하셨나요?

NOAH01112 commented 2 months ago

도메인으로 접속하면 리디렉션한 횟수가 너무 많다고 뜨고 localhost로 접속하면 잘못된 응답을 전송했다고 뜨네요. 인증서 적용 후입니다.

lshqqytiger commented 2 months ago

https로 접속하셨나요?

NOAH01112 commented 2 months ago

lshqqytiger commented 2 months ago

클라우드플레어 프록시가 걸려있으면 인증서는 적용하시면 안됩니다.

NOAH01112 commented 2 months ago

아 네

NOAH01112 commented 2 months ago

근데 인증서가 없으면 WAF를 false로 설정할 수밖에 없는데 어떡하죠

lshqqytiger commented 2 months ago

인증서 없이 열고 프록시를 켜고 WAF를 true로 하시면 서버 ↔ 클라우드플레어는 비보안 연결을 사용하게 되고 클라우드플레어 ↔ 유저는 보안 연결을 사용하게 됩니다.

NOAH01112 commented 2 months ago

인증서 없이 WAF true로 하고 열면 G: node:fs:581 return binding.open( ^

Error: ENOENT: no such file or directory, open 'D:\개인정보\개인정보\KKuTu-1-cloudflare\Server\Your SSL Private Key Here' at Object.openSync (node:fs:581:18) at Object.readFileSync (node:fs:457:35) at module.exports (D:\개인정보\개인정보\KKuTu-1-cloudflare\Server\lib\sub\secure.js:32:28) at Object. (D:\개인정보\개인정보\KKuTu-1-cloudflare\Server\lib\Game\slave.js:28:18) at Module._compile (node:internal/modules/cjs/loader:1376:14) at Module._extensions..js (node:internal/modules/cjs/loader:1435:10) at Module.load (node:internal/modules/cjs/loader:1207:32) at Module._load (node:internal/modules/cjs/loader:1023:12) at Module.require (node:internal/modules/cjs/loader:1235:19) at require (node:internal/modules/helpers:176:18) { errno: -4058, code: 'ENOENT', syscall: 'open', path: 'D:\개인정보\개인정보\KKuTu-1-cloudflare\Server\Your SSL Private Key Here' }

Node.js v20.10.0 라고 뜨면서 안열립니다

lshqqytiger commented 2 months ago

웹 서버 자체는 https로 열어야 합니다. 만료된 인증서도 상관 없으니 아무 인증서나 넣고 여시면 됩니다. (IS_SECURED는 false 여야 함) 실제로 사용되는 인증서는 아닙니다.

NOAH01112 commented 2 months ago

어떻게 그렇게 여나요

lshqqytiger commented 2 months ago

IS_SECURED를 false로, WAF는 true로 놓고 SSL_OPTIONS에 인증서 파일 경로를 넣으면 그렇게 열립니다. 해당 PR 본문에 전부 나와있는 내용입니다.

NOAH01112 commented 2 months ago

https://github.com/JJoriping/KKuTu/issues/1116#issuecomment-2315351304

lshqqytiger commented 2 months ago

클라우드플레어 SSL 설정에서 encryption mode를 Full 또는 Flexible로 바꿔보세요.

NOAH01112 commented 2 months ago

이미 Flexible입니다

lshqqytiger commented 2 months ago

저는 Full로 설정하면 접속이 잘 됩니다. image

NOAH01112 commented 2 months ago

인증서 적용하면 localhost에서도 접속이 안 됩니다

kdhkr commented 2 months ago

689 확인해 주세요.