[Network] ํ๋ก์(Proxy)
๐ ๋ค์ด๊ฐ๋ฉฐ
์ด๋ฒ ๊ธ์์๋ ๋คํธ์ํฌ์ ์ค๊ฐ์, ํ๋ก์(Proxy)๋ฅผ ์ ๋ฆฌํ๋ค. ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์์ ํธ๋ํฝ์ ์ ์ดยทํํฐ๋งํ๋ ์๋ฒ๋ก, ์ญํ (๋ณด์ยท์บ์ฑยท๋ก๋๋ฐธ๋ฐ์ฑ)๊ณผ ์ข ๋ฅ(ํฌ์๋ยท๋ฆฌ๋ฒ์คยท๊ฒ์ดํธ์จ์ด)๋ฅผ ์ดํด๋ณธ๋ค.
ํ๋ก์๋? ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ ํต์ ์ ์ค๊ฐํ๋ ์๋ฒ/์ ํ๋ฆฌ์ผ์ด์ . ํธ๋ํฝ์ ์ ์ดยทํํฐ๋งํ๋ฉฐ, ๋ณด์ ๊ฐํยท์บ์ฑยท๋ก๋ ๋ฐธ๋ฐ์ฑยท์ ๊ทผ ์ ์ด ๋ฑ์ ๊ธฐ๋ฅ์ ์ํํ๋ค.
1. ํ๋ก์์ ์ญํ
| ์ญํ | ์ค๋ช |
|---|---|
| ๋ณด์ ๊ฐํ | ํต์ ๊ฐ์ยท๋ณด์ ์ ์ฑ ์ ์ฉ(์ ์ฑ ์ฐจ๋จยท์ ๊ทผ ์ ํ) |
| ์บ์ฑ | ์ด์ ์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํด ๋คํธ์ํฌ ๋ถํ ๊ฐ์ |
| ๋ก๋ ๋ฐธ๋ฐ์ฑ | ์ฌ๋ฌ ์๋ฒ๋ก ์์ฒญ ๋ถ์ฐ โ ๋ถํ ๋ถ์ฐยท์ฑ๋ฅ ์ต์ ํ |
| ์ ๊ทผ ์ ์ด | ํน์ ์ฌ์ดํธยท์ฝํ ์ธ ํํฐ๋ง |
2. ํ๋ก์์ ์ข ๋ฅ
โํด๋ผ์ด์ธํธ๋ฅผ ์จ๊ธฐ๋๋, ์๋ฒ๋ฅผ ์จ๊ธฐ๋๋โ๋ก ํฌ์๋์ ๋ฆฌ๋ฒ์ค๊ฐ ๊ฐ๋ฆฐ๋ค.
flowchart LR
subgraph FW["ํฌ์๋ ํ๋ก์"]
C1["ํด๋ผ์ด์ธํธ"] --> FP["Forward Proxy"] --> S1["์๋ฒ"]
end
subgraph RV["๋ฆฌ๋ฒ์ค ํ๋ก์"]
C2["ํด๋ผ์ด์ธํธ"] --> RP["Reverse Proxy"] --> S2["์ฌ๋ฌ ์๋ฒ"]
end
| ์ข ๋ฅ | ์จ๊ธฐ๋ ๋์ | ์์น | ์ฉ๋ |
|---|---|---|---|
| ํฌ์๋ ํ๋ก์ | ํด๋ผ์ด์ธํธ | ๋ด๋ถ๋ง ์ถ๊ตฌ | ํ์ฌยทํ๊ต ์ธํฐ๋ท ์ ์ดยท๋ณด์ |
| ๋ฆฌ๋ฒ์ค ํ๋ก์ | ์๋ฒ | ์น ์๋ฒ ์ | ๋ถํ ๋ถ์ฐยท์์ ์ฑ |
| ๊ฒ์ดํธ์จ์ด ํ๋ก์ | ํ๋กํ ์ฝ ๋ณํ | ๋คํธ์ํฌ ๊ฒฝ๊ณ | ์๋ก ๋ค๋ฅธ ์์คํ ์ค๊ณ |
ํฌ์๋ ํ๋ก์
ํด๋ผ์ด์ธํธ๋ฅผ ๋์ ํ์ฌ ์๋ฒ์ ์ ๊ทผํ๋ค.
1
2
# curl๋ก ํฌ์๋ ํ๋ก์๋ฅผ ํตํด ์ ๊ทผ
curl --proxy http://forward-proxy-server:8080 http://example.com
๋ฆฌ๋ฒ์ค ํ๋ก์
ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ฌ๋ฌ ์๋ฒ๋ก ๋ถ๋ฐฐํ๋ค(Nginx ์์).
1
2
3
location / {
proxy_pass http://backend-server;
}
๊ฒ์ดํธ์จ์ด ํ๋ก์
์๋ก ๋ค๋ฅธ ํ๋กํ ์ฝ/์์คํ ๊ฐ ํต์ ์ ์ค๊ณํ๋ค(HTTP โ HTTPS).
1
2
3
4
5
6
server {
listen 80;
location / {
proxy_pass https://backend-server;
}
}
๐ก ํฌ์๋ vs ๋ฆฌ๋ฒ์ค โ ํฌ์๋๋ โ๋๊ฐ ์ ์ํ๋์ง(ํด๋ผ์ด์ธํธ)๋ฅผ ์จ๊ธฐ๊ณ โ ๋ด๋ถ ์ฌ์ฉ์์ ์ธํฐ๋ท ์ฌ์ฉ์ ํต์ ํ๋ค. ๋ฆฌ๋ฒ์ค๋ โ์ด๋ค ์๋ฒ๊ฐ ์ฒ๋ฆฌํ๋์ง(์๋ฒ)๋ฅผ ์จ๊ธฐ๊ณ โ ์ธ๋ถ ์์ฒญ์ ๋ค์ ์ฌ๋ฌ ์๋ฒ๋ก ๋ถ์ฐํ๋ค. ์์ ๋ณธ NginxยทHAProxy๊ฐ ๋ํ์ ์ธ ๋ฆฌ๋ฒ์ค ํ๋ก์๋ค.
3. ํ์ฉ ์์
| ๋ชฉ์ | ํ๋ก์ | ๋ฐฉ๋ฒ |
|---|---|---|
| ๋ณด์ ๊ฐํ | ํฌ์๋ | ์ธ๋ถ ์ง์ ํต์ ์ฐจ๋จยท์ ๊ทผ ์ ์ด |
| ์บ์ฑ | ๋ฆฌ๋ฒ์ค | ์ ์ ์ฝํ ์ธ ์บ์ โ ์๋ฒ ๋ถํโ |
| ๋ก๋ ๋ฐธ๋ฐ์ฑ | ๋ฆฌ๋ฒ์ค | ์ฌ๋ฌ ์๋ฒ๋ก ํธ๋ํฝ ๊ท ๋ฑ ๋ถ๋ฐฐ |
NginxยทApache ๊ฐ์ ์น ์๋ฒ๋ ์ธ์ด ๋ด์ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ค์ ํ๋ฉฐ, ์๊ตฌ์ ๋ฐ๋ผ ๋ค์ํ๊ฒ ํ์ฉ๋๋ค.
๐ ์ ๋ฆฌ
1
2
3
4
5
ํ๋ก์(Proxy)
โโ ์ญํ ๋ณด์ยท์บ์ฑยท๋ก๋๋ฐธ๋ฐ์ฑยท์ ๊ทผ์ ์ด
โโ ํฌ์๋ ํด๋ผ์ด์ธํธ ์จ๊น(๋ด๋ถ๋ง ์ ์ด)
โโ ๋ฆฌ๋ฒ์ค ์๋ฒ ์จ๊น(๋ถํ ๋ถ์ฐยท์น ์๋จ)
โโ ๊ฒ์ดํธ์จ์ด ํ๋กํ ์ฝ/์์คํ
์ค๊ณ
| ๊ฐ๋ | ํ ์ค ์ ์ |
|---|---|
| ํ๋ก์ | ํต์ ์ค๊ฐ ์๋ฒ |
| ํฌ์๋ | ํด๋ผ์ด์ธํธ ๋์ ์ ์ |
| ๋ฆฌ๋ฒ์ค | ์๋ฒ ์ ๋ถํ ๋ถ์ฐ |
ํ๋ก์์ ํต์ฌ์ ์ค๊ฐ์๋ก์ ํธ๋ํฝ์ ์ ์ดํ๋ ๊ฒ์ด๋ค. ํด๋ผ์ด์ธํธ๋ฅผ ์จ๊ธฐ๋ฉด ํฌ์๋(๋ด๋ถ ํต์ ), ์๋ฒ๋ฅผ ์จ๊ธฐ๋ฉด ๋ฆฌ๋ฒ์ค(๋ถํ ๋ถ์ฐ)๋ก, ๋ชฉ์ ์ ๋ง๋ ์ข ๋ฅ๋ฅผ ์ ํํ๋ ๊ฒ์ด ์ค์ํ๋ค.
Comments powered by Disqus.