HTTP์ ์์ฒญ์ ๋ฐ๊ณ , ๊ทธ์ ๋ํ reponse๋ฅผ ํ๋ ํ๋ก๊ทธ๋จ์ ๋๋ค. A์ข ์ค๋? ํ๋ฉด ์ ์ฌ๊ธฐ ใ ใ ํ๊ณ ์ฃผ๋ ์ ๊ฐ ๋ฐ๋ก ์น์๋ฒ๋ผ๋ ๊ฑฐ์ฃ .
๊ฐ์ ธ๋ค์ฃผ๋ ์ํ์ ๋ณดํต HTML ํ์ผ์ด ๋ ์๋ ์๊ณ , ๋ฐ์ดํฐ๊ฐ ๋ ์ ์์ต๋๋ค. ๋ชจ๋ธ ์ถ๋ก ๊ฒฐ๊ณผ์ผ ์๋ ์๊ตฌ์!
Apache์ Nginx๋ ์น์๋ฒ์ ๋ ํฐ ํ๋๋ค์ ๋๋ค. ์ด์ฐจํผ ํด๋ด์ผ ๋ฉ๋ดํ์ ์๋ ์์์ ๊ฐ์ ธ๋ค์ฃผ๋ ์ญํ ์ด๊ธด ํ์ง๋ง, ๊ฐ์ ธ๋ค์ฃผ๋ ๋ฐฉ์์ด ์ด์ง ๋ค๋ฆ ๋๋ค. ๊ทธ ๋ฐฉ์์ ์ฐจ์ด๋ถํฐ ์ด์ง ๋ณด๊ณ ๊ฐ๊ฒ ์ต๋๋ค.
์คํ์์ค๋ก, ์ ๋ง ์ค๋ ๊ธฐ๊ฐ ๋์ ์ฌ์ฉ๋์ด ์๋ ํ๋ก๊ทธ๋จ์ ๋๋ค.
์๋๋ Prefork MPM
๋ฐฉ์์ผ๋ก ์์ฒญ ํ๋๊ฐ ๋ค์ด์ค๋ฉด ๊ทธ ์์ฒญ์ ํ๋ก์ธ์ค์ 1:1๋ก ๋งค์นญํ๊ธฐ ์ํด ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ๋ณต์ ํ ๋ค์ ์์ฒญ์ ์ฒ๋ฆฌํ์ง๋ง.. ๋ง๋ง ๋ค์ด๋ ์์ฒญ์ด ๋ง์์ง๋ฉด ๊ต์ฅํ ๋นํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ผ ๊ฒ๊ฐ์ง ์๋์?
๊ทธ๋์ ๋์จ ๋ฐฉ๋ฒ์ด Worker MPM
์ด๋ผ๋ ๋ฐฉ์์ผ๋ก, ์์ฒญ ํ๋๊ฐ ๋ค์ด์ค๋ฉด ํ๋ก์ธ์ค ํ๋ ์์ ์ฐ๋ ๋๋ผ๋ ๋จ์๋ฅผ ์ฌ๋ฌ๊ฐ ์์ฑํ์ฌ ํ๋์ ๊ทธ ์ฐ๋ ๋๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ๊ฒ ๋ง๋๋ ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค. ์ด์ ํ๋์ ํ๋ก์ธ์ค๋ก ์ฌ๋ฌ๊ฐ์ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๊ฒ ๋ ๊ฒ์ด์ฃ !
Apache
๋ ๊ฒฐ๊ตญ ์์ฒญ์ด ๋ค์ด์ฌ ๋๋ง๋ค ๋ญ๊ฐ๋ฅผ ์์ฑํด์ผํฉ๋๋ค.
๊ทธ๋ฌ๋ Nginx
๋ ์ ์ด์ ํ๋์ ํ๋ก์ธ์ค๊ฐ ๋ ์๊ณ , ๋ค์ด์ค๋ ์์ฒญ์ Event๋ก ์ ์ํ์ฌ ์ ์ด์ ๋ณ๋ ฌ์ ์ผ๋ก ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋ง๋ค์์ต๋๋ค.
๊ฒฐ๊ตญ ๋ค์ด์จ ์์ฒญ์ ๋ํด ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ๋ค์ฃผ๋ฉด ๋๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋นจ๋ฆฌ ์ค๋น๋ ์ ๋ค์ ๋จผ์ return ํด๋ ๋๋ค๋ ๊ฒ์ด์ฃ .
Apache์ ๋นํด ์๋์ ์ผ๋ก ์์คํ ์์ ๊ด๋ฆฌ์ฐจ์์์ ์ฅ์ ์ด ์๋ค๊ณ ํ ์ ์์ต๋๋ค.
find -name nginx.conf
๋ฅผ ์
๋ ฅํ์๋ฉด nginx ์ค์ ํ์ผ์ ์์น๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์์น๋ฅผ ํ์ธํ ๋ค์ vi ํธ์ง๊ธฐ๋ฅผ ํตํด ๋ด์ฉ์ ํ์ธํ๋ฉด...
๋ญ ์์ฒญ๋๊ฒ ๋ง์ ๋ด์ฉ๋ค์ด ์ฃผ๋ฅด๋ฅต ๋น๋๋ค. ๋ชจ๋ ์์ธํ๊ฒ ์ ํ์๋ ์๊ณ , http ๋ธ๋ก ์ฃผ๋ก ์์ ๋ฉ๋๋ค.
๋ค์ํ ์น์๋น์ค๋ณ๋ก ๋ค๋ฅธ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ธฐ ์ํ ์์ ์ด ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์๋ฒ๊ฐ ์ค์ ๋จ์ ์์ด์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์ ๋์ด ์๋ ๊ฒฝ๋ก ๋๋ฌธ์ ํผ๋ฅผ ๋ณด๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ด ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ํด๋น ์ค์ ํ์ผ์ ๋ฐฉ๋ฌธํ์ฌ ํ์คํ์ค ์ดํด๋ณด๋ ๊ฒ ์ข์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก๋ ๊ฐ๋ฅํ ๊ธฐ๋ฅ๋ค์ ๋ํ ์ค์ ์ด ๋ด๊ฒจ์ ธ ์๋ ํด๋์ธ sites-available
๊ณผ ์ค์ ๋ก ์ฌ์ฉํ๋ ๊ธฐ๋ฅ๋ค์ ๋ํ ์ค์ ๋ค์ด ๋ด๊ฒจ์ ธ ์๋ ํด๋์ธ sites-enabled
๊ฐ ์๋๋ฐ,
-enabled
ํด๋๊ฐ available
ํด๋์ ์ฌ๋ณผ๋ฆญ ์ฐ๊ฒฐ์ด ๋์ด ์์ต๋๋ค. ๋๋ฌธ์ available์์ ์ค์ ์ ๋ณ๊ฒฝํด์ฃผ๋ฉด enabled๋ ์๋์ผ๋ก ๋ณ๊ฒฝ๋๊ธด ํฉ๋๋ค.
site-available
์ default
๋ฅผ vi๋ก ํธ์งํด์ค๋๋ค.
์ ํฌ๋ docker run
๋ช
๋ น์ด์์ -p 80:8080
๋ช
๋ น์ด๋ก ์ปจํ
์ด๋์ 8080๋ฒ ํฌํธ๋ฅผ ์ด์ด๋จ๊ธฐ ๋๋ฌธ์ ์์ ์ค์ ์ 80์์ 8080์ผ๋ก ๋ฐ๊ฟ์ฃผ์ด์ผ ํฉ๋๋ค.
์์ค์ด ํฌํธ ๋ฒํธ์ง์ , ์๋์ ์ค์ด IPv6๋ฅผ ์ํ ์ค์ ์ด๋ผ๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
๊ทธ ์๋์ root
๋ฅผ ํ์ธํ์ค ์ ์๋๋ฐ, ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฒญ์ด ๋ค์ด์ค๋ฉด return ํด์ค html ํ์ผ์ด ์ ์ฅ๋์ด ์๋ ๊ฒฝ๋ก๋ฅผ ๋ฃ์ต๋๋ค.
๊ทธ ๋ค์ ์กฐ๊ธ ๋ด๋ฆฌ๋ฉด server_name(๋๋ฉ์ธ)์ ํ์ธํ ์ ์์ต๋๋ค. ๋๋ฉ์ธ์ ๊ตฌ๋งคํ๋ค๋ฉด ๊ทธ๊ฑธ ์ ์ผ๋ฉด ๋์ง๋ง... ์ ๋ ๋๋ฉ์ธ์ด ์๋ ๊ฑธ์ ใ
ใ
ํํํํ ์๋ ๊ฒฝ์ฐ์ default ์ค์ ๊ทธ๋๋ก ๋๋ฌ๋ ๋ฌด๋ฐฉํฉ๋๋ค.
์กฐ๊ธ ๋ฐ์ ๋ด๋ ค์ค๋ฉด location
์ ํ์ธํ ์ ์์ต๋๋ค.
๋ณด์ด๋ ์ฌ๋ ์ฌ ๋ค์ ์ค๋ ํน์ ์์ฒญ์ด ์์ ๋ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง๋ฅผ ์ ์ด๋๋ ๊ณณ์ ๋๋ค.
์๋ฅผ ๋ค์ด naver/blog ๋ผ๋ url์ด ๋ค์ด์์ ๋, blog๋ผ๋ ํ์ผ์ด๋ ํด๋๋ฅผ ์ฐพ์๋ณด๊ณ ์์ผ๋ฉด 404๋ฅผ ๋์๋ผ! ์ด๋ฐ ์์ผ๋ก ๋ง์ด์ฃ .
์ถ๊ฐํ๊ณ ์ถ์ ๋๋ ์๋์ ๊ฐ์ด ์ค์ ํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
์ค์ ์ด ์๋ฃ๋๊ณ ๋์๋ service nginx restart
๋ก ์ฌ์์์ ํด์ค๋๋ค.
๊ทธ๋ฌ๊ณ ๋ค์ ip๋ฅผ ๋ค์ด๊ฐ๋ฉด?
์์ ๊ฐ์ html ์ด ๋น๋๋ค. ์ด? ์ ๋ html์ ์ค์ ์ ํด์คฌ๋๋ฐ ์ด๋ป๊ฒ ์ด๋ ๊ฒ ๊ธฐ๊น๋๊ฒ ์์์ ๊ฐ์ ธ๋ค ์ฃผ์์๊น์?
๊ทธ ์ญํ ์ ํ๋ ๊ฒ์ด ๋ฐ๋ก index ์ค์ ์
๋๋ค.
์์ ๊ฒ๋ค์ ์์ฐจ์ ์ผ๋ก ์ฐพ์๋ณธ ๋ค์ ์์ผ๋ฉด ์ด๊ฑธ ์ฐพ์๋ณด๊ณ ์ด๊ฑธ ์ฐพ์๋ณด๊ณ ... ์ด๋ฐ ์์ผ๋ก ์ ํด๋ ๊ฒ์ด์ฃ . ์ ํฌ๋ ๋ง๋ค์ด๋ ํ์ผ์ด ์์๊ธฐ ๋๋ฌธ์ nginx์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฃ์ด๋ HTML ํ์ผ์ ๋์์ค ๊ฒ๋๋ค.
๊ทธ๋ผ ์์ ๊ฐ์ด location /blog
์ /flask
๋ฅผ ์ค์ ํด์ฃผ๊ณ ์ดํ ๋ช
๋ น์ด๋ฅผ root /var/www
๋ฅผ ์ง์ ํด์คฌ์ต๋๋ค. ์ด๋ฌ๋ฉด ์ด๋ป๊ฒ ๋ช
๋ น์ ์ฒ๋ฆฌํ ๊น์?
- 123.123.123/blog/asdf.html ์์ฒญ์ด ๋ค์ด์ด
nginx
๋ ์ด์ /blog
๋ผ๋ ์์ฒญ์ผ๋ก ๋ค์ด์์ผ๋root
๋ช ๋ น์ด๋ก ์ธํด /var/www/blog ๊ฒฝ๋ก๋ก ์ด๋- ํด๋น ์ฅ์์์ asdf.html ์ ์ฐพ์.
- ์ต์ข ์ ์ผ๋ก๋ /var/www/blog/asdf.html ํ์ผ์ ์ฐพ์๋ณด๊ณ ์์ผ๋ฉด return ํด์ค
ํ๋ฒ ํ
์คํธ๋ฅผ ํด๋ณด๊ธฐ ์ํด /var/www
์ blog์ flask๋ผ๋ ํด๋๋ฅผ ๋ง๋ค๊ณ ๊ฐ๊ฐ์ index๋ฅผ ์์ ํด์คฌ์ต๋๋ค.
๋จผ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ผ๋ก ์๋ฌด๊ฒ๋ url์ ์
๋ ฅํด์ฃผ์ง ์์์ ๋์ ๋ชจ์ต์
๋๋ค.
๋ค์์ผ๋ก /blog/๊น์ง ์
๋ ฅํด์ฃผ์์ ๋์ ๋ชจ์ต์
๋๋ค.
๋ง์ง๋ง์ผ๋ก /flask/๊น์ง ์
๋ ฅํด์ฃผ์์ ๋์ ๋ชจ์ต์
๋๋ค.
์ ๊ฐ HTML ํ์ผ์ ์ข ์์ ํ๊ธฐ ๋๋ฌธ์ ๊ฐ๊ฐ ๋ค๋ฅธ ํ์ผ์ return ํ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
โ ์๋ฌ ํ์ธ ๋ฐฉ๋ฒ
nginx๋ ๋ณดํต "ใ
ใ
์ผ๋จ ์ ๋จ ใ
ใ
์์ธ์ ๋๊ฐ ์์์ ์ฐพ์ด~" ์์ผ๋ก ํฉ๋๋ค ใ
ใ
๋๋ฌด ์ผ์ํ์ฃ .. ๊ทธ๋ฌ๋ ๋ค์๊ณผ ๊ฐ์ ์ต์
์ ์ฐ๋ฉด ์ด๋์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์ง ์ ๋๋ ์๋ ค์ค๋๋ค. (๋๋ฌด ์น์ ํ๊ฒ๋์)
(sudo) nginx -t
nginx๋ฅผ restart ํ๋ ค๊ณ ํ์ผ๋ fail์ด ๋น๋๋ค. ๊ทธ๋ฌ๋ ์์ธ์ ๋ ๋งํด์ฃผ์ง ์์ต๋๋ค. ์ด๋ด ๋ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐ๋ก nginx -t
๋ช
๋ น์ด ์
๋๋ค.
์ํ root๊ฐ rot์ผ๋ก ์
๋ ฅ๋์ด ๋ฐ์ํ ์๋ฌ์์ต๋๋ค. syntex ์๋ฌ์๋ค์. ๊ฐ๋จํ๊ฒ ํด๋น ํ์ผ๋ก ๊ฐ์ vi ํธ์ง์ด๋ฅผ ์์ ํด์ค๋๋ค.
ํ ์ ํ๋ค์ ใ ใ