Infra & DevOps

[DevOps] ๋ฐฐํฌํ•œ ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ์˜ nginx ์„œ๋ฒ„ 404 ์—๋Ÿฌ

hyeyeonismm 2024. 3. 8. 01:54

 

๋ฐฐํฌํ•œ ํ”„๋กœ์ ํŠธ์˜ 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๋กœ ๊ฐ€๋„๋ก ์„ค์ •ํ•ด์ฃผ๋Š” ์ฝ”๋“œ์ด๋‹ค.

 

์ดํ›„ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์žฌ์‹œ์ž‘ํ•˜๋ฉด ๋”์ด์ƒ ์—๋Ÿฌ๊ฐ€ ๋œจ์ง€ ์•Š๋Š”๋‹ค!