๐ŸŒฑ <groot/>
ํ”„๋ก์‹œ์™€ ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ โ€” ๋ฐฉํ–ฅ์ด ๋’ค์ง‘ํžˆ๋ฉด ๋ญ๊ฐ€ ๋‹ฌ๋ผ์ง€๋‚˜ | Groot's Tech Blog
๐ŸŒWeb

ํ”„๋ก์‹œ์™€ ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ โ€” ๋ฐฉํ–ฅ์ด ๋’ค์ง‘ํžˆ๋ฉด ๋ญ๊ฐ€ ๋‹ฌ๋ผ์ง€๋‚˜

2026.07.04ยท3๋ถ„ ์ฝ๊ธฐ

ํ„ฐ๋„์„ ๋งŒ๋“ค๋‹ค๊ฐ€ ๊นจ๋‹ฌ์•˜๋‹ค

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๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๊ทธ ์ˆœ๊ฐ„์—” ๋‚˜๊ฐ€๋Š” ์š”์ฒญ์˜ ๋Œ€๋ฆฌ์ธ์ด๋‹ค. ๊ฒฐ๊ตญ ๊ตฌ์กฐ ์ด๋ฆ„๋ณด๋‹ค ์ค‘์š”ํ•œ ๊ฑด ๊ทธ ์š”์ฒญ์—์„œ ๋ˆ„๊ตฌ๋ฅผ ๋Œ€์‹ ํ•ด ๋ˆ„๊ตฌ๋ฅผ ์ˆจ๊ธฐ๊ณ  ์žˆ๋Š”๊ฐ€๋ฅผ ๋ณผ ์ค„ ์•„๋Š” ๊ฒƒ์ด๋‹ค.

โ† ๋ชฉ๋ก์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
ยฉ 2026 ยท Groot's Tech Blog. Built with Gatsby ๐ŸŒฑ