๐คทโ๏ธ Proxy?
๋ค๋ฅธ ์๋ฒ์์ ๋ฆฌ์์ค๋ฅผ ์ฐพ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ํ ์ค๊ณ์ ์ญํ ์ ํ๋ ์๋ฒ์ด๋ค. ๋ฐ๋ผ์ ํ๋ก์ ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ํด๋ผ์ด์ธํธ๊ฐ ์ฐพ๊ณ ์๋ ๋ฐ์ดํฐ๋ฅผ ํธ์คํ
ํ๋ ์ค์ ์๋ฒ ์ฌ์ด์ ์์นํ๋ค. ํด๋ผ์ด์ธํธ์๊ฒ ํ๋ก์ ์๋ฒ๋ ์ค์ ๋ฐฑ์๋ ์๋ฒ๋ก ๋ํ๋๊ณ , ๋ฐฑ์๋ ์๋ฒ์๋ ํ๋ก์ ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์ฒ๋ผ ๋ณด์ธ๋ค.
ํ๋ก์๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๋จ์ํ ๋ณด์๋๋ฌธ๋ง์ด ์๋๋ผ ํ๋ก์ ์๋ฒ์ ์์ฒญ์ด ๋ ๋ฐ์ดํฐ๋ค์ [์บ์]๋ฅผ ์ด์ฉํด ์ ์ฅํด ๋ก๋๋ค. ์บ์๋ฅผ ํ์ฉํด์ ์์ฒญ์๊ฐ์ ์ ์ฝ ํ ์ ์์ต๋๋ค.
๐คทโ๏ธ Reverse Proxy?
ํ๋ ์ด์์ ๋ฐฑ์๋ ์๋ฒ ์์ ์์นํ์ฌ ๊ฐ ์์ฒญ์ ์ฌ์ฉํ ๋ฐฑ์๋ ์๋ฒ๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ด๋ค.
Reverse Proxy ์ฅ์
- ๋์์ฑ : ๋ค์ค ์ฐ๊ฒฐ์ ๋ ์ ์ฒ๋ฆฌํ ์ ์๋ ์ญ๋ฐฉํฅ ํ๋ก์๋ฅผ ์ถ๊ฐํ๋ฉด ๋ฐฑ์๋ ์๋ฒ ์ฑ๋ฅ์ด ํฌ๊ฒ ํฅ์๋ ์ ์๋ค.
- ๋ณต์๋ ฅ : ๋ฐฑ์๋ ์๋ฒ์ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ์๋น์ค๊ฐ ์ฌ๊ฐ๋ ๋๊น์ง ์คํจํ ์๋ฒ์ ๋ํ ์์ฒญ ์ ์ก์ ์ค์งํ ์ ์๋ค. ์ญ๋ฐฉํฅ ํ๋ก์๊ฐ ์ฌ์ ํ ์๋ ์ค์ธ ๋ฐฑ์๋ ์๋ฒ์ ์์ฒญ์ ์๋์ผ๋ก ๋ณด๋ด๊ธฐ ๋๋ฌธ์ ํด๋ผ์ด์ธํธ์๋ ์ค๋ฅ๊ฐ ํ์๋์ง ์๋๋ค.
- ํ์ฅ์ฑ : ์ญ๋ฐฉํฅ ํ๋ก์๋ ๋ฐฑ์๋ ์๋ฒ ๊ทธ๋ฃน์ ๋ํ ๋จ์ผ “๊ณต๊ฐ ์ผ๊ตด"์ด๊ธฐ ๋๋ฌธ์ ๋ณํํ๋ ํธ๋ํฝ ๋ถํ์ ๋ฐ๋ผ ์๋ฒ๋ฅผ ์ถ๊ฐ ๋ฐ ์ ๊ฑฐํ ์ ์๋ค.
- ๋ ์ด์ด 7๋ผ์ฐํ : ์ญ๋ฐฉํฅ ํ๋ก์๋ ๋ชจ๋ ์๋ฒ๋ก ํฅํ๋ ํธ๋ํฝ์ ๋ณด๊ณ ํ์์ ๋ฐ๋ผ ์์ฒญ๊ณผ ์๋ต์ ์์ ํ์ฌ ๊ฐ ์์ฒญ์ ๋ณด๋ผ ์์น์ ๋ํ ์ง๋ฅ์ ์ธ ๊ฒฐ์ ์ ๋ด๋ฆด ์ ์๋ค. ์์ฒญ์ ํน์ HTTP ํค๋, URL์ ์ผ๋ถ, ํด๋ผ์ด์ธํธ์ ์ง๋ฆฌ์ ์์น ๋ฑ์ ๋ฐ๋ผ ๋ผ์ฐํ ๊ฒฐ์ ์ ๋ด๋ฆด ์ ์๋ค.
- ์บ์ฑ : ์ญ๋ฐฉํฅ ํ๋ก์๋ ์บ์ฑ์ ์ํํ๊ธฐ์ ์ข์ ์ฅ์์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ชจ๋ ์์ฒญ์ ๋ฐฑ์๋ ์๋ฒ๋ก ๋ณด๋ด๊ณ ๊ฐ ๋ฐฑ์๋ ์๋ฒ๊ฐ ์์ฒด ์บ์๋ฅผ ๊ตฌ์ถํ๋๋ก ํ๋ ๊ฒ๋ณด๋ค ์ฝํ ์ธ ๋ฅผ ๊ฐ์ํ๋ ๊ฒ์ด ํจ์ฌ ๋ ํจ์จ์ ์ด๋ค.
- ๊ธฐํ ๊ธฐ๋ฅ : ์ญ๋ฐฉํฅ ํ๋ก์๋ ๋ฐฑ์๋ ์๋ฒ ์์ ์์์ผ๋ก์จ ๋์ญํญ ๋๋ ์์ฒญ ์๋์ ๋ฐ๋ฅธ ํธ๋ํฝ ํ์ฑ, ์ฐ๊ฒฐ ์ ํ, ๋ค์ํ ์ธ์ฆ ์ฒด๊ณ์์ ํตํฉ, ํ๋ ๋ชจ๋ํฐ๋ง ๋ฑ๊ณผ ๊ฐ์ ๋ค๋ฅธ ๊ธฐ๋ฅ๋ ์ํํ ์ ์๋ค.
๐คทโ๏ธ Nginx proxy_pass ์ค์ ?
react niginx ๋ฐฐํฌํ๊ธฐ ์ฐธ๊ณ [AWS EC2] EC2์ React ์ฑ + Node.js ์๋ฒ ๋ฐฐํฌ 2 - Nginx + React (tistory.com)
ํ์ผ๋ก์ด๋
sudo vi /etc/nginx/sites-available/ํ์ผ.conf
nginx server ์ ํ
server {
listen 80;
location / {
root /home/user/myapp/build;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /api/ {
proxy_pass http://[์๋ฒ url];
}
}
proxy_pass๋ฅผ ์ค์ ํด์ฃผ๊ณ ๋๋ฉด, ํ๋ก ํธ์์ ์๋ฒ์ ์ง์ ์์ฒญํ๋ ๊ฒ์ด ์๋๋ผ, ์์ฒญ์ ์๊ธฐ์์ url๋ก ๋ณด๋ด๋ฉด proxy์์ ์์ฒญ์ ๋ฐ์์ ์ค์ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๊ณ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋๋ค.
์๋ฅผ ๋๋ฉด axios.get(" ์๋ฒurl ")๋ก ์๋ฒ์ ์์ฒญ์ ๋ณด๋ผ๊ฒ์ด๋ค. ํ์ง๋ง ํ๋ก์ ์ค์ ํ์ ์๋ฒurl ๋์ ํด๋ผ์ด์ธํธ url๋ก ๋ฐ๊ฟ์ฃผ๋ฉด proxy๊ฐ ์ค์ ์๋ฒ์ ์์ฒญ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด์ ํด๋ผ์ด์ธํธ์ ์๋ต์ ํด์ค๋ค ๋ณด์์ ์ธ ์ธก๋ฉด์์ ์์ ํ๋ค.
'AWS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
AWS S3 CORS ํค๋ ๊ด๋ จ ์ด์ ํด๊ฒฐ๋ฐฉ๋ฒ (39) | 2023.02.10 |
---|---|
[ Trouble Shooting ] Shasum command not found (3) | 2023.02.10 |
AWS Elastic Beanstalk (9) | 2023.01.05 |
Aws workshop (5) | 2022.11.22 |
AWS EC2 ์ธ์คํด์ค Putty ํ์ฉํด์ ์๋ฒ ์ ์ (21) | 2022.11.16 |