Nginx in Docker
Categories: Docker
Nginx?
์์ง์์ค๋ ์ํ์น์ C10K๋ฅผ ๋์ํ๊ธฐ์ํด ๋ง๋ค์ด์ก๋ค.
๋์์ ์์ฒ๋ฆฌ
์ ํนํ๋ ์น ์๋ฒ ํ๋ก๊ทธ๋จ์ด๋ค. ์ํ์น๋ณด๋ค ๋์์ด ๋จ์ํ๊ณ , ์ ๋ฌ์ญํ ๋ง ํ๊ธฐ ๋๋ฌธ์ ๋์์ ์์ ํนํ๊ฐ ๋์ด์๋ค.
Nginx๋ ์์ฒญ์ ์๋ตํ๊ธฐ ์ํด ๋น๋๊ธฐ ์ด๋ฒคํธ ๊ธฐ๋ฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ค.
์ํ์ฐจ์์์ ์ค๋ ๋/ํ๋ก์ธ์ค ๊ธฐ๋ฐ ๊ตฌ์กฐ์ ๋์กฐ์ ์ด๋ค.
์๋ฒ์ ๋ง์ ๋ถํ๊ฐ ์๊ธธ ๊ฒฝ์ฐ์ ์ฑ๋ฅ์ ์์ธกํ๊ธฐ ์ฝ๊ฒ ํด์ค๋ค.
๋ณธ ํ๊ฒฝ์์๋ Docker์ Nginx container์ ๋์ ์ดํ์ ์ค๋ container๋ค์ ๊ฐ๊ฐ ๋งตํํ๊ธฐ ์ํ
๋ฆฌ๋ฒ์ค ํ๋ก์
๋ก์ Nginx๋ฅผ ์ด์ฉํ ๊ฒ์ด๋ค.
๋ฆฌ๋ฒ์ค ํ๋ก์๋?
๋คํธ์ํฌ์์ ํด๋ผ์ด์ธํธ๋ฅผ ๋์ ํด ํ ๋ ์ด์์ ์๋ฒ์์๋ถํฐ ์์์ ์ถ์ถํ๋ ํ๋ก์์ ์ผ์ข
.
๋ง์น ํด๋ผ์ด์ธํธ๊ฐ ์น์๋ฒ๋ก ๋ฐ๋ก ์์ฒญํ๊ณ ๋ฐํํ๋ ๊ฒ ์ฒ๋ผ ๋ณด์ด๊ฒ ํด์ค๋ค.
- ์ฅ์
- ๋ณด์ : ํด๋ผ์ด์ธํธ๋ ์๋ฒ ๋ชจ๋ IP๋ฅผ ์จ๊ธธ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๊น.
- ์ฑ๋ฅ : ์บ์ฑ ๊ธฐ๋ฅ๊ณผ ํธ๋ํฝ ๋ถ์ฐ(๋ก๋๋ฐธ๋ฐ์ฑ ๋๋ ์๋ํฌ์ธํธ ๋งคํ)์ผ๋ก ์ฑ๋ฅ ํฅ์์ ๊ธฐ๋ํ ์ ์์.
How to!
-
docker hub์์ nginx๋ฅผ ๊ฐ์ ธ์จ๋ค
docker pull nginx:latest
-
nginx ์ค์ ๋ณด๊ด์ฉ docker volumn ํน์ ๋ง์ดํธ ํ ํธ์คํธ์ ๋๋ ํ ๋ฆฌ๋ฅผ ์์ฑํ๋ค. ํ์๋ docker volumn์ ์์ฑํ์์.
# docker volume ๋ฐฉ๋ฒ docker volume create nginx_volume # ๋ง์ดํธ ๋ฐฉ๋ฒ $YOUR_DIR/nginx
-
docker์ ๋์๋ณธ๋ค. ์ด ๋, ์ ํํ volume์ ๋ฐ๋ผ -v ์ต์ ์ผ๋ก ๋ง์ดํธ๋ฅผ ์ง์ ํ๋ค
docker run --name web -it -d -p 80:80 -v nginx_volume:/etc/nginx nginx ./bin/bash # ์ปจํ ์ด๋์ด๋ฆ์ง์ ํฌํธ์ง์ ๋ณผ๋ฅจ์ง์ ๋์ปค์ด๋ฏธ์ง ์คํํ ๋ง์ง๋ง๋ช ๋ น
-
aws๋ ncp, gcp๊ฐ์ public cloud๋ฅผ ์ฌ์ฉ ์ค์ด๋ผ๋ฉด, ๋ฐ๊ธ๋ฐ์ ๊ณต์ธip๋ฅผ ์ ์ํด์ welcome nginx ๋ฌธ๊ตฌ๊ฐ ๋ณด์ด๋์ง ํ์ธํ๋ค.
-
example.com ๊ฐ์ ๋๋ฉ์ธ์ ์ฌ์ฉํ๋ค๋ฉด, conf.d์ ์๋ฒ ๋ณ conf ํ์ผ์ ์์ฑํ๋ค
์์) nginx, django, gitlab, jenkins, apiserver, authserver ์ปจํ ์ด๋๊ฐ ๊ตฌ์ฑ๋์ด์์ ๋ nginx -> ๋ฆฌ๋ฒ์ค ํ๋ก์ django -> example.com gitlab -> git.example.com jenkins -> jenkins.example.com ..... authserver -> auth.example.com ์ ๊ตฌ์ฑํ๊ธฐ ์ํด์๋, ์ฐ์ ๋๋ฉ์ธ ๊ตฌ์ ํน์ ๊ด๋ฆฌ์ฒ์ ์๋ธ๋๋ฉ์ธ์ผ๋ก ์ฌ์ฉํ ๋ ์ฝ๋๋ฅผ ์ง์ ํด์ ๋ถ์ฌํ๋ค. ์ดํ ๊ฐ ์ปจํ ์ด๋๋ง๋ค conf ํ์ผ์ ์์ฑํ๋ค. ๊ธฐ๋ณธ ์์ฑ) server{ listen 80; server_name xxx.example.com location / { # your another container's info : port } } ์๋ฒ๋ณ๋ก conf ํ์ผ์ ํ์ฉํ ์ ์์ด์ ์ข๋ค.
Leave a comment