ํ๋ก์์ ๋ฆฌ๋ฒ์ค ํ๋ก์ โ ๋ฐฉํฅ์ด ๋ค์งํ๋ฉด ๋ญ๊ฐ ๋ฌ๋ผ์ง๋
ํฐ๋์ ๋ง๋ค๋ค๊ฐ ๊นจ๋ฌ์๋ค
Custom Tunnel์ ๋ง๋ค๋ฉด์ ๊ณต๊ฐ ์๋ฒ ์ชฝ ์ฝ๋๋ฅผ ์ฐ๋ค ๋ณด๋, ๋ด๊ฐ ํ๊ณ ์๋ ์ผ์ด ๋ฏ์ต์๋ค. ์์ฒญ์ ๋ฐ์์ ๋์ ์ ๋ฌํ๊ณ , ์๋ต์ ๋ฐ์์ ๋๋ ค์ฃผ๊ณ , ํค๋๋ฅผ ๊ณ ์น๊ณ , ๋ฐฑ์๋๊ฐ ์ฃฝ์ผ๋ฉด 502๋ฅผ ๋ฑ๊ณ . ์ด๊ฑฐ ๊ทธ๋ฅ ๋ฆฌ๋ฒ์ค ํ๋ก์์์?
๊ทธ๋ฐ๋ฐ ๋ง์ "ํ๋ก์๋ ๋ฆฌ๋ฒ์ค ํ๋ก์๊ฐ ๋ญ๊ฐ ๋ฌ๋ผ?"๋ผ๊ณ ์ค์ค๋ก์๊ฒ ๋ฌผ์ผ๋ ๋ต์ด ๋ฐ๋ก ์ ๋์๋ค. ๋ ๋ค "์ค๊ฐ์์ ๋์ ์ ๋ฌํ๋ ๋"์ธ๋ฐ, ๋ญ๊ฐ ๋ฆฌ๋ฒ์ค๋ผ๋ ๊ฑด์ง. ์ ๋ฆฌํ๊ณ ๋๋ ๊ธฐ์ค์ ๋ฑ ํ๋์๋ค. ๋๊ตฌ๋ฅผ ๋์ ํ๋๋.
ํ๋ก์(ํฌ์๋ ํ๋ก์): ํด๋ผ์ด์ธํธ์ ๋๋ฆฌ์ธ
ํฌ์๋ ํ๋ก์๋ ํด๋ผ์ด์ธํธ ํธ์ ์ ๋ค. ๋ด๊ฐ ์ด๋๊ฐ์ ์์ฒญ์ ๋ณด๋ผ ๋, ๋ด ์ ์ฒด๋ฅผ ๊ฐ์ถ๊ฑฐ๋ ํ์ฌ ์ ์ฑ ์ ํต๊ณผํ๊ธฐ ์ํด ์ค๊ฐ์ ๋ผ์ฐ๋ ๋์ด๋ค.
[๋] โโโถ ํ๋ก์ โโโถ ์ธํฐ๋ท์ ์๋ฌด ์๋ฒ
โฒ โ
โโโ ์๋ฒ๋ ํ๋ก์๋ง ๋ณด์ธ๋ค โโโ
- ์๋ฒ๋ ์ง์ง ํด๋ผ์ด์ธํธ๊ฐ ๋๊ตฐ์ง ๋ชจ๋ฅธ๋ค. ์๋ฒ ์ ์ฅ์์ ํ๋ก์๊ฐ ์์ฒญ์ ๋ณด๋ธ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ํ๋ก์์ ์กด์ฌ๋ฅผ ์๊ณ , ์ง์ ์ค์ ํ๋ค. (๋ธ๋ผ์ฐ์ ํ๋ก์
์ค์ ,
http_proxyํ๊ฒฝ๋ณ์) - ํ์ฌ์์ ํน์ ์ฌ์ดํธ๋ฅผ ์ฐจ๋จํ๊ฑฐ๋, ๊ตญ๊ฐ ์ฐจ๋จ์ ์ฐํํ๊ฑฐ๋, ๋ฐ์ ํธ๋ํฝ์ ๊ฐ์ฌ ๋ก๊ทธ๋ก ๋จ๊ธฐ๋ ๊ฒ ์ ๋ถ ์ด ๊ตฌ์กฐ๋ค.
ํต์ฌ: ํ๋ก์๊ฐ "๋๊ฐ๋ ๋ฐฉํฅ" ์ ๋๋ฆฌํ๋ค. ๊ทธ๋์ forward๋ค.
๋ฆฌ๋ฒ์ค ํ๋ก์: ์๋ฒ์ ๋๋ฆฌ์ธ
๋ฆฌ๋ฒ์ค ํ๋ก์๋ ๋ฐ๋๋ก ์๋ฒ ํธ์ ์ ๋ค. ๋ฐฉ๋ฌธ์๋ ๋ฆฌ๋ฒ์ค ํ๋ก์์ ์ ์ํ๊ณ , ๊ทธ ๋ค์ ์ง์ง ์๋ฒ๊ฐ ๋ช ๋ ์๋์ง, ์ด๋ ์๋์ง ์ ํ ๋ชจ๋ฅธ๋ค.
๋ฐฉ๋ฌธ์ โโโถ ๋ฆฌ๋ฒ์ค ํ๋ก์(nginx ๋ฑ) โโโถ ๋ฐฑ์๋ ์๋ฒ 1
โโโโถ ๋ฐฑ์๋ ์๋ฒ 2
โโโโถ ๋ฐฑ์๋ ์๋ฒ 3
- ํด๋ผ์ด์ธํธ๋ ์ง์ง ์๋ฒ๊ฐ ๋๊ตฐ์ง ๋ชจ๋ฅธ๋ค. ์๊น์ ์ ํํ ๋ฐ๋๋ค.
- ์ค์ ํ๋ ์ชฝ๋ ๋ฐ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์๋ฌด๊ฒ๋ ์ ํ๊ณ , ์๋ฒ ์ด์์๊ฐ ๋ฆฌ๋ฒ์ค ํ๋ก์๋ฅผ ์ธ์ด๋ค.
- nginx๋ก ๋ก๋๋ฐธ๋ฐ์ฑ, TLS ์ข ๋ฃ(HTTPS๋ฅผ ํ๋ก์์์ ํ๊ณ ๋ค๋ก๋ HTTP), ์บ์ฑ, ์์ถ์ ํ๋ ๊ฒ ์ ๋ถ ์ด ๊ตฌ์กฐ๋ค. CDN๋ ๋ณธ์ง์ ์ผ๋ก ๊ฑฐ๋ํ ๋ฆฌ๋ฒ์ค ํ๋ก์๋ค.
ํ ์ค๋ก ๋น๊ตํ๋ฉด:
| ํฌ์๋ ํ๋ก์ | ๋ฆฌ๋ฒ์ค ํ๋ก์ | |
|---|---|---|
| ๋๊ตฌ ํธ์ธ๊ฐ | ํด๋ผ์ด์ธํธ | ์๋ฒ |
| ๋๊ฐ ์จ๋ | ํด๋ผ์ด์ธํธ | ์๋ฒ(๋ฐฑ์๋) |
| ๋๊ฐ ์ค์ ํ๋ | ํด๋ผ์ด์ธํธ | ์๋ฒ ์ด์์ |
| ๋ํ ์ | ํ์ฌ ํ๋ก์, ์ฐํ ํ๋ก์ | nginx, CDN, ๋ก๋๋ฐธ๋ฐ์ |
์ด๋ฆ์ด ํท๊ฐ๋ฆฌ๋ฉด ์ด๋ ๊ฒ ๊ธฐ์ตํ๋ฉด ๋๋ค. ํ๋ก์๊ฐ ์จ๊ฒจ์ฃผ๋ ์ชฝ์ด ๊ณง ํ๋ก์์ ์ฃผ์ธ์ด๋ค. ํด๋ผ์ด์ธํธ๋ฅผ ์จ๊ธฐ๋ฉด ํฌ์๋, ์๋ฒ๋ฅผ ์จ๊ธฐ๋ฉด ๋ฆฌ๋ฒ์ค.
๊ทธ๋์ Custom Tunnel์ ๋ญ๋
ํฐ๋์ ๊ณต๊ฐ ์๋ฒ๋ ๋ฆฌ๋ฒ์ค ํ๋ก์์ ์ ์์ ์ ํํ ๋ค์ด๋ง๋๋ค. ๋ฐฉ๋ฌธ์๋ ๊ณต๊ฐ URL๋ง ์๊ณ , ๋ค์ ์๋ ๋ด ๋ก์ปฌ ์๋ฒ์ ์กด์ฌ๋ฅผ ๋ชจ๋ฅธ๋ค. ์ค์ ๋ก ํ๋ ์ผ๋ ๋ฆฌ๋ฒ์ค ํ๋ก์๊ฐ ํ๋ ์ผ ๊ทธ๋๋ก๋ค.
- ์์ฒญ์ ๋ฐฑ์๋(๋ด ๋ก์ปฌ)๋ก ๋์ ์ ๋ฌํ๊ณ ์๋ต์ ๋๋ ค์ค๋ค
- ๋ฐฑ์๋ ์๋ต์ด 30์ด ์ ์ค๋ฉด 504, ๋ฐฑ์๋๊ฐ ์ฃฝ์ด ์์ผ๋ฉด 502
- ํค๋๋ฅผ ๊ณ ์ณ์ ๋ด๋ณด๋ธ๋ค โ CSPยท
X-Frame-Options์ ๊ฑฐ,Location์นํ
๊ทธ๋ฐ๋ฐ nginx ๊ฐ์ ๋ณดํต ๋ฆฌ๋ฒ์ค ํ๋ก์์ ๊ฒฐ์ ์ ์ผ๋ก ๋ค๋ฅธ ์ ์ด ํ๋ ์๋ค. ๋ฐฑ์๋๋ก ์ฐ๊ฒฐํ๋ ๋ฐฉํฅ์ด๋ค.
nginx๋ ํ๋ก์๊ฐ ๋ฐฑ์๋๋ก ์ง์ ์ ์ํ๋ค. ๊ฐ์ ๋ฐ์ดํฐ์ผํฐ ์์ ์์ผ๋ ๊ฐ๋ฅํ๋ค. ํ์ง๋ง ๋ด ๋ก์ปฌ PC๋ NAT์ ๋ฐฉํ๋ฒฝ ๋ค์ ์์ด์, ๊ณต๊ฐ ์๋ฒ๊ฐ ์ ์ํด ๋ค์ด์ฌ ๋ฐฉ๋ฒ์ด ์๋ค. ๊ทธ๋์ ๋ฐฉํฅ์ ๋ค์ง๋๋ค. ๋ก์ปฌ์ด ๋จผ์ ๊ณต๊ฐ ์๋ฒ๋ก WebSocket์ ์ด์ด๋๊ณ , ๋ฐฉ๋ฌธ์ ์์ฒญ์ด ์ค๋ฉด ๊ทธ ๋ฏธ๋ฆฌ ์ด๋ฆฐ ์ฐ๊ฒฐ๋ก ๊ฑฐ๊พธ๋ก ๋ฐ์ด ๋ฃ๋๋ค.
nginx: ํ๋ก์ โโ์ ์โโโถ ๋ฐฑ์๋ (ํ๋ก์๊ฐ ์ ์)
Custom Tunnel: ํ๋ก์ โโโ์ ์โโ ๋ฐฑ์๋(๋ก์ปฌ) (๋ฐฑ์๋๊ฐ ๋จผ์ ์ ์)
โโ์์ฒญโโโถ (ํธ๋ํฝ์ ๋ฐ๋๋ก ํ๋ฆ)
์ฐ๊ฒฐ์ ์ฌ๋ ๋ฐฉํฅ๊ณผ ํธ๋ํฝ์ด ํ๋ฅด๋ ๋ฐฉํฅ์ด ๋ฐ๋์ธ ๊ฒ. ์ด๊ฒ ๋ฆฌ๋ฒ์ค ํฐ๋์ด๊ณ , ngrok์ด NAT๋ฅผ ๋ซ๋ ์๋ฆฌ๋ค. ์ ๋ฆฌํ๋ฉด Custom Tunnel์ "HTTP ์ค๊ณ ๊ณ์ธต์ ๋ฆฌ๋ฒ์ค ํ๋ก์, ๋ฐฑ์๋ ์ฐ๊ฒฐ์ ๋ฆฌ๋ฒ์ค ํฐ๋"์ธ ๊ตฌ์กฐ๋ค.
์ด ๊ตฌ์กฐ ๋๋ฌธ์ ์๊ธฐ๋ ๋ฌธ์ ๋ค์ด ์๋ค. HTTP๋ ์์ฒญ-์๋ต์ด ์์ธ๋ฐ WebSocket์ ๊ทธ๋ฅ ๋ฉ์์ง ์คํธ๋ฆผ์ด๋ผ ๋งค์นญ์ ์ง์ ํด์ผ ํ๊ณ , ํ ์คํธ ์ฑ๋๋ก ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ ๋ผ์ผ ํ๋ค. ๋ณดํต ๋ฆฌ๋ฒ์ค ํ๋ก์์๋ ์๋, ํฐ๋์ด๋ผ์ ์๊ธฐ๋ ๋น์ฉ์ด๋ค.
๋ค: ๋ ๋ค์ธ ๋๋ ์๋ค
๊ฒฝ๊ณ๊ฐ ํญ์ ๊น๋ํ์ง ์๋ค. VPN์ ์ฌ์ฉ์๋ฅผ ๋์ ํด ๋๊ฐ๋ ํฌ์๋ ํ๋ก์ ์ฑ๊ฒฉ์ธ๋ฐ, ํ์ฌ VPN์ ๋ด๋ถ ์๋ฒ ์ ๊ทผ ํต๋ก์ด๊ธฐ๋ ํ๋ค. Cloudflare ๊ฐ์ CDN์ ๋ฐฉ๋ฌธ์์๊ฒ ๋ฆฌ๋ฒ์ค ํ๋ก์์ง๋ง, Workers์์ ์ธ๋ถ API๋ฅผ ํธ์ถํ๋ฉด ๊ทธ ์๊ฐ์ ๋๊ฐ๋ ์์ฒญ์ ๋๋ฆฌ์ธ์ด๋ค. ๊ฒฐ๊ตญ ๊ตฌ์กฐ ์ด๋ฆ๋ณด๋ค ์ค์ํ ๊ฑด ๊ทธ ์์ฒญ์์ ๋๊ตฌ๋ฅผ ๋์ ํด ๋๊ตฌ๋ฅผ ์จ๊ธฐ๊ณ ์๋๊ฐ๋ฅผ ๋ณผ ์ค ์๋ ๊ฒ์ด๋ค.
- GitHub: debug_tool (Custom Tunnel)