[DevOps] ๋ฐฐํฌํ ๋ฆฌ์กํธ ํ๋ก์ ํธ์ nginx ์๋ฒ 404 ์๋ฌ
๋ฐฐํฌํ ํ๋ก์ ํธ์ url์ ์ง์ ์ฃผ์๋ฅผ ์ ๋ ฅํ์ฌ ์ ๊ทผํ๋ ค๋ 404 ์๋ฌ๊ฐ ๋ฌ๋ค.
์๋ฌ ์์ธ
๋ฆฌ์กํธ ์ฑ์ด Single Page Application(SPA)์ผ๋ก ์ฃผ๋ก ๊ตฌ์ฑ๋์ด ์๊ณ , ์น ์๋ฒ๊ฐ SPA์ ๋ผ์ฐํ ๋ฐฉ์์ ์ ๋๋ก ์ฒ๋ฆฌํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ค. ๋ฐ๋ผ์ ์น ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ผ์ฐํ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ๋๋ก ๊ตฌ์ฑํด์ผ ํ๋ค.
SPA์์๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ ๋จ ํ ๋ฒ ํ์ด์ง๋ฅผ ์์ฒญํ๊ณ , ์ดํ ๋ชจ๋ ๋ผ์ฐํ ์ ํด๋ผ์ด์ธํธ ์ธก์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํตํด ์ฒ๋ฆฌ๋๋ค.
์ฌ์ฉ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ด์์ ๋ค๋ฅธ ํ์ด์ง๋ก ์ด๋ํ ๋, ์๋ฒ์ ์ ํ์ด์ง๋ฅผ ์์ฒญํ๋ ๊ฒ์ด ์๋ ๋ฆฌ์กํธ ํ๋ ์์ํฌ๋ฅผ ํตํด ๋์ ์ผ๋ก ์ปจํ ์ธ ๋ฅผ ๋ณ๊ฒฝํ๋ค.
๊ทธ๋ฌ๋ ๋ธ๋ผ์ฐ์ ์ ์ฃผ์์ฐฝ์ URL์ ์ง์ ์ ๋ ฅํ๋ ๊ฒฝ์ฐ ํด๋น ์์ฒญ์ ์๋ฒ๋ก ๊ฐ๊ฒ ๋๊ณ , ์๋ฒ์์ ๊ฒฝ๋ก ์์ฒญ์ ๋ํ ์ค์ ์ด ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ 404 Not Found ์๋ฌ๊ฐ ๋ฐํ๋๋ค.
ํธ๋ฌ๋ธ ์ํ
ํด๊ฒฐํ๊ธฐ ์ํด์๋ Nginx ์ค์ ํ์ผ์ ์์ ํ์ฌ, ๋ชจ๋ ์์ฒญ์ ๋ฆฌ์กํธ ์ฑ์ index.html๋ก ๋ฆฌ๋ค์ด๋ ํธํ๋๋ก ์ค์ ํด์ผ ํ๋ค.
์ค์ ์ ๋ณ๊ฒฝํ๋ฉด ์๋ฒ๋ ์ง์ ์ ์ผ๋ก ํด๋น ๊ฒฝ๋ก์ ๋ํ ํ์ผ์ ์ ๊ณตํ์ง ์๊ณ , ๋์ ๋ฆฌ์กํธ ์ฑ์ด ํด๋ผ์ด์ธํธ ์ฌ์ด๋์์ ๋ผ์ฐํ ์ ์ฒ๋ฆฌํ ์ ์๊ฒ ๋๋ค.
๊ณผ์
๋๋ ์ธ์คํด์ค ๋ด๋ถ์ ๋์ปค ์ปจํ ์ด๋๋ฅผ ํ๋ฐ์๊ธฐ ๋๋ฌธ์ ์ธ์คํด์ค ๋ด๋ถ์ ๋์ปค ์ปจํ ์ด๋์ ์ ์ํ๋ค.
docker exec -it ContainerID /bin/bash
(bash๊ฐ ์ค๋ฅ๋๋ ๊ฒฝ์ฐ์๋ sh๋ฅผ ์ฐ๋ฉด ๋จ)
๋์ปค ์ปจํ
์ด๋ ๋ด๋ถ์ ์ ์ํ ํ, /etc/nginx/conf.d/default.conf
์ ํ์ผ์ ์ด์ด ํ์ผ์ ์์ ํ๋ค.
ํด๋น ํ์ผ์์ location์ ์์ ํด์ฃผ๋ฉด ๋๋ค.
...
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
...
์ด ์ฝ๋๋ ์ ์ ์๋ ๋ผ์ฐํธ๋ก ์ ์ํ์ ๋ ์๋์ผ๋ก index.html๋ก ๊ฐ๋๋ก ์ค์ ํด์ฃผ๋ ์ฝ๋์ด๋ค.
์ดํ ๋์ปค ์ปจํ ์ด๋๋ฅผ ์ฌ์์ํ๋ฉด ๋์ด์ ์๋ฌ๊ฐ ๋จ์ง ์๋๋ค!