์ „์ฒด ๊ธ€

์ „์ฒด ๊ธ€

    2. nginx์˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ์ด์šฉํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ํ•˜๊ธฐ

    ๐Ÿบ ๋ชฉ์ฐจ ๐Ÿบ(๋ณด์‹œ๋ ค๋ฉด ์•„๋ž˜ ๋”๋ณด๊ธฐ ๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”.) ๋”๋ณด๊ธฐ 1. nginx์˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ๊ณผ ์„ธ์…˜ ์œ ์ง€ (session storage ๋ฐฉ์‹ ํ™œ์šฉ) 2. nginx์˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ์ด์šฉํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ํ•˜๊ธฐ 3. ์ผ๋ถ€ ์†Œ์Šค ์ˆ˜์ • ํ›„ ์ž๋™ ๋ฐฐํฌ ๋ฐฉ๋ฒ• (์„œ๋ฒ„์—์„œ git pull+ssh ์ด์šฉ) ๐Ÿบ ๋ณธ ์ž‘์—…์€ ๋ฐ”๋กœ ์ด์ „ ๊ฒŒ์‹œ๊ธ€์˜ ์†Œ์Šค๋ฅผ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. ๐Ÿบ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๊ฒ ์ง€๋งŒ, ์—ฌ๊ธฐ์„œ๋Š” ์ทจ๋ฏธ ๊ฐœ๋ฐœ์ž๋กœ ๋Šฅ๋ ฅ์ด ์•„์ง ๋งŽ์ด ๋ถ€์กฑํ•œ ์ œ๊ฐ€ ์ƒ๊ฐํ•˜๊ธฐ์— ๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ตฌํ˜„ํ•ด ๋ณธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๐Ÿ”ด ์ด์ „์— ๊ณ„์† ์‚ฌ์šฉํ•˜์˜€๋˜ git push + github Action ์„ ์‚ฌ์šฉํ•œ ๋ฐฉ๋ฒ•์„ ์ด๋ฒˆ์—๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด, ์•ž์—์„œ git push ํ›„ ์„œ๋ฒ„๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด, ์„œ๋ฒ„์— ์žˆ๋˜ ๋ชจ๋“  ํŒŒ์ผ๋“ค์ด ์‚ฌ..

    1. nginx์˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ๊ณผ ์„ธ์…˜ ์œ ์ง€ (session storage ๋ฐฉ์‹ ํ™œ์šฉ)

    ๐Ÿบ ๋ชฉ์ฐจ ๐Ÿบ(๋ณด์‹œ๋ ค๋ฉด ์•„๋ž˜ ๋”๋ณด๊ธฐ ๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”.) ๋”๋ณด๊ธฐ 1. nginx์˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ๊ณผ ์„ธ์…˜ ์œ ์ง€ (session storage ๋ฐฉ์‹ ํ™œ์šฉ) 2. nginx์˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ์ด์šฉํ•œ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ ํ•˜๊ธฐ 3. ์ผ๋ถ€ ์†Œ์Šค ์ˆ˜์ • ํ›„ ์ž๋™ ๋ฐฐํฌ ๋ฐฉ๋ฒ• (์„œ๋ฒ„์—์„œ git pull+ssh ์ด์šฉ) ์ด์ „ ๊ฒŒ์‹œ๊ธ€์—์„œ nginx์˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์„ ํ™œ์šฉํ•  ๋•Œ, html 1๊ฐœ ํŒŒ์ผ๋งŒ ์ด์šฉ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‹จ, ์ด์ „ ๋ฐฉ์‹์œผ๋กœ๋Š” ๋กœ๊ทธ์ธ ๋“ฑ์—์„œ ํ™œ์šฉํ•˜๋Š” ์„ธ์…˜ ๋“ฑ์€ ์œ ์ง€๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์ง€๋งŒ, ์—ฌ๊ธฐ์„œ๋Š” redis๋ฅผ ์ด์šฉํ•œ session storage ๋ฐฉ์‹์„ ํ™œ์šฉํ•ด ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 1. ํด๋” ๋ฐ ํŒŒ์ผ ์ƒ์„ฑ ๊ฐ€. ํด๋” ๋ฐ ํŒŒ์ผ์€ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์„ฑํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋‚˜. ์œ„ ํด๋” ๋ฐ ํŒŒ์ผ๋“ค์€ ์•„๋ž˜ ์—์„œ ๋‹ค์šด๋ฐ›..

    18. ์™€์ผ๋“œ์นด๋“œ ์ธ์ฆ์„œ ์ž๋™ ๊ฐฑ์‹  (docker + Let's Encrypt + wildcard ์ธ์ฆ์„œ + crontab)

    1. ์ธ์ฆ์„œ ๊ฐฑ์‹ ํ•˜๋ผ๋Š” ๋ฉ”์ผ ์ด์ „ ์‹œ๋ฆฌ์ฆˆ ๊ธ€ ์ค‘ 17๋ฒˆ ๊ฒŒ์‹œ๊ธ€์—์„œ ์™€์ผ๋“œ์นด๋“œ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•„ ์‚ฌ์ดํŠธ์— ์ ์šฉ์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. Let's Encrypt ์ธ์ฆ์„œ๋“ค์€ 90์ผ๋งˆ๋‹ค ๊ฐฑ์‹ ์„ ํ•ด์•ผ ํ•˜๋Š”๋ฐ์š”. ์–ผ๋งˆ์ „ ์œ„์™€ ๊ฐ™์ด ์ธ์ฆ์„œ๋ฅผ ๊ฐฑ์‹ ํ•˜๋ผ๋Š” ๋ฉ”์ผ์ด ์™”์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ, ์ด์ œ ๊ฐฑ์‹ ์„ ํ•ด์•ผ ๊ฒ ์ง€์š”? ํ•˜์ง€๋งŒ, 3๊ฐœ์›”๋งˆ๋‹ค ๋งค๋ฒˆ ์ˆ˜๋™์œผ๋กœ ๊ฐฑ์‹ ํ•˜๋Š” ๊ฒƒ์€ ๋„ˆ๋ฌด ๊ท€์ฐฎ๊ธฐ๋„ ํ•˜๊ณ  ๊นœ๋นก ์žŠ์„ ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ, ์•„๋ž˜์ชฝ์—์„œ๋Š” crontab ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜์—ฌ ์ž๋™์œผ๋กœ ๊ฐฑ์‹ ๋˜๋„๋ก ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. 2. ๊ฐฑ์‹  ์ž‘์—… ์ „ ์ธ์ฆ์„œ ํ™•์ธํ•ด ๋ณด๊ธฐ => ํ•„์ˆ˜ ์ž‘์—…์ด ์•„๋‹Œ ์ฐธ๊ณ ์šฉ์ž„. ๊ฐ€. ์ธ์ฆ์„œ ๊ฒ€์ฆํ•ด๋ณด๊ธฐ sudo docker run --rm --name certbot \ -v /etc/letsencrypt:/etc/letsencrypt \ certbot/dns-c..

    17. ์„œ๋ฒ„์— SSL ์ ์šฉํ•˜๊ธฐ (docker + Let's Encrypt + wildcard ์ธ์ฆ์„œ + Cloudflare)

    โœจ ์ด๋ฒˆ ๊ฒŒ์‹œ๊ธ€์€ ์ž์‹ ์ด ๊ตฌ์ž…ํ•œ ๋„๋ฉ”์ธ์ด ์žˆ์–ด์•ผ๋งŒ ๊ฐ€๋Šฅํ•œ ์ž‘์—…์ž…๋‹ˆ๋‹ค. โœจ SSL ์ธ์ฆ์„œ๋Š” ๋ฌด๋ฃŒ ์ธ์ฆ์„œ์ธ Let's Encrypt ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋ฉฐ, ๋‹จ์ผ ์ธ์ฆ์„œ๊ฐ€ ์•„๋‹Œ ์„œ๋ธŒ ๋„๋ฉ”์ธ ์–ด๋–ค ๊ฒƒ์ด๋“  ๋ชจ๋‘ ์ปค๋ฒ„ํ•  ์ˆ˜ ์žˆ๋Š” ์™€์ผ๋“œ์นด๋“œ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. โœจ ์™€์ผ๋“œ์นด๋“œ ์ธ์ฆ์„œ๋Š” ์ž์‹ ์˜ ๋„๋ฉ”์ธ์„ ๊ด€๋ฆฌํ•˜๋Š” ์‚ฌ์ดํŠธ์„œ DNS์— ์–ด๋–ค ๊ฐ’์„ ์ง์ ‘ ์ž…๋ ฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ธ์ฆ์„ ๋ฐ›์•„ ๋ฐœ๊ธ‰์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, 3๊ฐœ์›”๋งˆ๋‹ค ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ๋งค๋ฒˆ ๊ฐฑ์‹ ์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ข€ ๊ท€์ฐฎ์€ ์ž‘์—…์ด์ง€์š”. ํ•˜์ง€๋งŒ, DNS๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ์‚ฌ์ดํŠธ ์ค‘์—๋Š” DNS ๊ฐ’์„ ์™ธ๋ถ€์—์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” API๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ณณ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•˜๋ฉด ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐ ๊ฐฑ์‹ ์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋Ÿฐ ์‚ฌ์ดํŠธ ์ค‘ ์ €๋Š” Clou..

    16. https๋ฅผ ์“ฐ๊ธฐ ์œ„ํ•ด ๋กœ์ปฌ์—์„œ SSL ํ…Œ์ŠคํŠธ ํ•˜๊ธฐ (with mkcert)

    ์•ž์—์„œ ์šฐ๋ฆฌ๋Š” ๋กœ์ปฌ์—์„œ ์ž„์‹œ๋กœ ๋„๋ฉ”์ธ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด์ œ ์•ž์—์„œ ์ž„์‹œ๋กœ ๋งŒ๋“  ๋„๋ฉ”์ธ์„ ์ด์šฉํ•˜์—ฌ ๋กœ์ปฌ์—์„œ ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ https๋ฅผ ํ…Œ์ŠคํŠธ ํ•ด ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๐Ÿ”ด ์ด๋ฒˆ ๊ฒŒ์‹œ๊ธ€ ๋‚ด์šฉ์„ ๋”ฐ๋ผํ•˜์‹œ๊ธฐ ์ „์— docker>front ํด๋” ์•ˆ์˜ default.conf ํŒŒ์ผ์„ ๋”ฐ๋กœ ๋ณต์‚ฌํ•ด ๋†“์œผ์‹œ๊ธธ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด์œ ๋Š” ๋ณธ ๊ฒŒ์‹œ๊ธ€ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์„ ๋จผ์ € ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. 1. mkcert mkcert๋Š” ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ https๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. mkcert์— ๋Œ€ํ•œ ์ข€๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”. https://github.com/FiloSottile/mkcert GitHub - FiloSottile/mkcert: A simple z..

    15. ๋กœ์ปฌ์—์„œ ์•„์ดํ”ผ ๋Œ€์‹  ๋„๋ฉ”์ธ๋ช… ์‚ฌ์šฉํ•˜๊ธฐ(hosts ์ˆ˜์ •)

    ์„œ๋ฒ„์—์„œ https๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € ๋„๋ฉ”์ธ ํ•˜๋‚˜๋ฅผ ๊ตฌ์ž…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์•„์ง ๊ณต๋ถ€๋‚˜ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด์„œ ๋„๋ฉ”์ธ์„ ๋จผ์ € ๊ตฌ์ž…ํ•˜๊ธฐ์—๋Š” ๋ถ€๋‹ด์Šค๋Ÿฝ๊ฒ ์ฃ ? ๊ทธ๋ž˜์„œ ๋จผ์ € ๊ตฌ์ž…ํ•œ ๋„๋ฉ”์ธ ์—†์ด ๋กœ์ปฌ์—์„œ ๋„๋ฉ”์ธ ํ•˜๋‚˜๋ฅผ ๋งˆ์Œ๋Œ€๋กœ ์ƒ์„ฑํ•˜์—ฌ ์‚ฌ์šฉ์„ ํ•ด ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ ๊ธ€์—์„œ๋Š” ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ https ์ ์šฉ์„ ํ•ด ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๋‚ด์šฉ์€ ์œˆ๋„์šฐ์ฆˆ 10 ๊ธฐ์ค€์œผ๋กœ ์ž‘์„ฑ๋œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์ด์  ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. 1. hosts ํŒŒ์ผ ์ˆ˜์ • ๊ฐ€. ์ด ๋ฐฉ๋ฒ•์€ ์•ž์œผ๋กœ ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉํ•  ๋„๋ฉ”์ธ์„ ๋ฏธ๋ฆฌ ๋กœ์ปฌ์—์„œ ํ…Œ์ŠคํŠธ ํ•˜๊ฑฐ๋‚˜, ๋˜๋Š” ๋งˆ์Œ๋Œ€๋กœ ๋„๋ฉ”์ธ์„ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋‚˜. ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋„๋ฉ”์ธ์„ ์ž…๋ ฅํ•˜๋ฉด ์™ธ๋ถ€ DNS ์„œ๋ฒ„์—์„œ ํ•ด๋‹น ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ip๋ฅผ ํ™•์ธ ํ›„ ํ•ด๋‹น ip์˜ ์„œ๋ฒ„๋กœ ์ฐพ์•„๊ฐ€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ๊ทธ ์ „์—..

    14. Nginx - Reverse Proxy, Load Balancing ๊ธฐ๋Šฅ ํ™œ์šฉ

    1. Reverse Proxy ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ๊ฐ€. ๋ณด์•ˆ ๊ฐ•ํ™” - ์šด์˜ ์„œ๋ฒ„๋“ค์„ ์•ž ๋‹จ์— ๋‘์ง€ ์•Š๊ณ  ํ”„๋ก์‹œ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” Nginx ์„œ๋ฒ„ ๋’ท ๋‹จ์— ์ˆจ๊ฒจ๋‘๊ธฐ ๋•Œ๋ฌธ์— ์ข€๋” ํ•ดํ‚น์— ์•ˆ์ „ํ•˜๋‹ค๊ณ  ํ•จ. ๋‚˜. ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ(๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ) - ์„œ๋ฒ„๋ฅผ ํ•˜๋‚˜๋งŒ ์šด์˜ํ•  ๊ฒฝ์šฐ ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์ด ํ•œ ๊ณณ์—๋งŒ ๋ชฐ๋ ค ์šด์˜์ด ์–ด๋ ค์›Œ ์งˆ ์ˆ˜ ์žˆ์Œ. ์ด์— ์„œ๋ฒ„๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ๋‘๊ณ  ๊ฐ๊ฐ์˜ ์„œ๋ฒ„๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐ์‹œ์ผœ ์ฃผ๋Š” ๊ธฐ๋Šฅ. 2. ํด๋” ๋ฐ ํŒŒ์ผ ์ƒ์„ฑ ๊ฐ€. docker ํด๋” ํ•˜๋‹จ์— front ํด๋”๋ฅผ ์ƒ์„ฑํ•ด ์ค๋‹ˆ๋‹ค. ๋‚˜. docker>front ํด๋” ์•ˆ์— nginx.conf ํŒŒ์ผ ์ƒ์„ฑ ํ›„ ์•„๋ž˜ ๋‚ด์šฉ ์ž…๋ ฅ user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid ..

    13. nginx + php + mysql + phpmyadmin ์„ค์น˜ํ•˜๊ธฐ

    ๐Ÿบ ์šฐ๋ฆฌ๋Š” ์•ž์—์„œ nginx 2๊ฐœ๋ฅผ ์„ค์น˜ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด์ œ ์—ฌ๊ธฐ์— ์ถ”๊ฐ€๋กœ nginx + php + mysql + phpmyadmin ์„ ๋” ์„ค์น˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™œ nginx ๋ฅผ ์ด๋ ‡๊ฒŒ ๋งŽ์ด ์„ค์น˜ํ•˜๋ƒ๊ณ ์š”? ์•ž์œผ๋กœ ์šฐ๋ฆฌ๋Š” nginx์˜ Reverse-Proxy ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋ฉฐ, ๋ถ€ํ•˜ ๋ถ„์‚ฐ์„ ์œ„ํ•œ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ๋„ ๊ตฌํ˜„ํ•ด ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. (์™œ? ๊ทธ๋ƒฅ ๊ณต๋ถ€๋ฅผ ์œ„ํ•ด์„œ...) 1. ํด๋” ์ •๋ฆฌ ๊ฐ€. www ํด๋”๋ฅผ ๋งŒ๋“  ํ›„, ์ด์ „์— ๋งŒ๋“  data, data2 ํด๋”๋ฅผ www ํด๋” ๋ฐ‘์œผ๋กœ ์˜ฎ๊ฒจ์ค๋‹ˆ๋‹ค. ๋‚˜. ๊ทธ๋ฆฌ๊ณ  www ํด๋” ๋ฐ‘์— data3 ํด๋”๋„ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค. ๋‹ค. data3 ํด๋” ์•ˆ์— index.php ํŒŒ์ผ์„ ํ•˜๋‚˜ ์ƒ์„ฑํ•œ ํ›„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅํ•ด ์ค๋‹ˆ๋‹ค. (์•„๋ž˜ ์ž…๋ ฅํ•˜๋Š” ๊ฐ’๋“ค์€ ๋ณธ ๊ฒŒ์‹œ๊ธ€ ํ•˜๋‹จ์—์„œ ๋ชจ๋‘ ์ž…๋ ฅํ•˜๋Š” ๋‚ด์šฉ๋“ค์ž…..

    12. ์„œ๋ฒ„์— ๋„์ปค ์„ค์น˜์‹œ network ์„ค์ • ๋ณ€๊ฒฝ ์‚ฌํ•ญ ํ™•์ธํ•˜๊ธฐ

    1. Ubuntu 22.04 ์„œ๋ฒ„ ์ดˆ๊ธฐ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ ๋ชจ์Šต (๋„์ปค ์„ค์น˜ ์ „) 2. ๋„์ปค ์„ค์น˜ ํ›„ (์•„์ง ์‹คํ–‰๋œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์—†๋Š” ์ดˆ๊ธฐ ๋ชจ์Šต) 3. docker-compose.yml๋ฅผ ์ด์šฉํ•˜์—ฌ nginx ์ปจํ…Œ์ด๋„ˆ 2๊ฐœ๋ฅผ ๋„์šด ํ›„์˜ ๋ชจ์Šต ifconfig ์กฐํšŒ ํ›„ ์ถ”๊ฐ€๋œ ๋ถ€๋ถ„๋งŒ 4. ๋ฐ”๋กœ ์œ„ ์ด๋ฏธ์ง€์—์„œ progstudy_default ๋ผ๋Š” ๋ธŒ๋ฆฌ์ง€๊ฐ€ ์ƒ๊ฒผ์œผ๋ฉฐ, ์ด ๋ธŒ๋ฆฌ์ง€์— ์—ฐ๊ฒฐ๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ™•์ธํ•ด ๋ณด๋ ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. docker network inspect progstudy_default 5. ์šฐ๋ฆฌ๊ฐ€ ์•ž์—์„œ ์ž‘์—…ํ•œ docker-compose.yml ํŒŒ์ผ์— ์•„๋ž˜์™€ ๊ฐ™์ด network ์„ค์ •์„ ์ถ”๊ฐ€ํ•ด ์ค€ ํ›„ ์„œ๋ฒ„๋กœ ๋ฐฐํฌ ํ›„ ๋„์ปค ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ์„ ์‚ดํŽด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. version: '3...

    11. ์„œ๋ฒ„์— vnstat ์„ค์น˜ (docker-compose.yml ์ด์šฉ)

    ์šฐ๋ฆฌ๋Š” ์•ž์—์„œ vnstat ํ”„๋กœ๊ทธ๋žจ์„ docker ๋ช…๋ น์–ด๋กœ ์„œ๋ฒ„์— ์ง์ ‘ ์„ค์น˜ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” docker-compose.yml๋กœ ์„ค์น˜ํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 1. ์ง€๋‚œ๋ฒˆ ์‚ฌ์šฉํ•œ docker ๋ช…๋ น์–ด docker run -d \ --restart=unless-stopped \ --network=host \ -e HTTP_PORT=8685 \ -v /etc/localtime:/etc/localtime:ro \ -v /etc/timezone:/etc/timezone:ro \ --name vnstat \ vergoh/vnstat 2. docker-compose.yml ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ vnstat: image: vergoh/vnstat:latest container_name: vnstat restart: unl..

    10. ์„œ๋ฒ„ ์ž๋™ ๋ฐฐํฌ (4) ๋ฐฐํฌ์‹œ ์„œ๋ฒ„์—์„œ docker-compose.yml ์ž๋™ ์‹คํ–‰

    ๐Ÿ”ด ์•ž ๊ฒŒ์‹œ๊ธ€์—์„œ ์šฐ๋ฆฌ๋Š” ๋กœ์ปฌ์—์„œ ์†Œ์Šค ์ˆ˜์ • ํ›„ git push ๋ช…๋ น์„ ์ด์šฉํ•˜์—ฌ github์— ์˜ฌ๋ฆฌ๋ฉด, ์ž๋™์œผ๋กœ ์„œ๋ฒ„์— ๋ฐฐํฌ๋˜๋Š” ๊ฒƒ์„ ์ด๋ฏธ ์™„๋ฃŒํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ™•์žฅํ•˜์—ฌ, ์„œ๋ฒ„์— ์˜ฌ๋ ค์ง„ docker-compose.yml ํŒŒ์ผ์„ ์ž๋™์œผ๋กœ ์‹คํ–‰์‹œ์ผœ nginx ์„œ๋ฒ„๊ฐ€ ์„ค์น˜๋˜๋„๋ก ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๐Ÿ”ด ์•„๋ž˜ ์ž‘์—…์„ ์™„๋ฃŒํ•˜๋ฉด ์ž๋™์œผ๋กœ nginx ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋˜๋ฉฐ, ์•ž์—์„œ ์šฐ๋ฆฌ๋Š” 80 ํฌํŠธ์™€ 8080 ํฌํŠธ๋ฅผ ์ด์šฉํ•œ nginx 2๊ฐœ๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‹จ, ์ฒ˜์Œ์—๋Š” ์ ‘์†์ด ๋˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํด๋ผ์šฐ๋“œ์—์„œ๋Š” ๋ฐฉํ™”๋ฒฝ์ด ๋ชจ๋“  ํฌํŠธ๋ฅผ ๋ง‰๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์™ธ๋ถ€์—์„œ์˜ ์ ‘์†์„ ์œ„ํ•ด ํด๋ผ์šฐ๋“œ ๋ฐฉํ™”๋ฒฝ์—์„œ 80, 8080 ํฌํŠธ๋ฅผ ๊ผญ ์—ด์–ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ๋งˆ๋‹ค ๋ฐฉํ™”๋ฒฝ์„ ์—ฌ๋Š” ๋ฐฉ๋ฒ•์ด ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅด๋‹ˆ ๊ตฌ๊ธ€๋ง ํ•˜์…”์„œ ํ•ด..

    9. (tip) git Add, Commit, push ํ•œ๋ฒˆ์— ํ•˜๊ธฐ

    ์•ž์—์„œ ์šฐ๋ฆฌ๋Š” ์†Œ์Šค ์ˆ˜์ • ํ›„ ์•„๋ž˜ ์„ธ ์ค„์˜ ๋ช…๋ น์–ด๋กœ github์— ์˜ฌ๋ ค์ฃผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. git add * git commit -m "์„ธ๋ฒˆ์งธ" git push ๊ทธ๋Ÿฐ๋ฐ 3์ค„์„ ์ž…๋ ฅํ•˜๋ ค๋‹ˆ ์ €์˜ ๊ฒฝ์šฐ ๋„ˆ๋ฌด ๊ท€์ฐฎ๋”๊ตฐ์š”. ๊ทธ๋ž˜์„œ ์ €๋Š” ์ด๊ฒƒ์„ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‹จ ํ•œ์ค„๋กœ ๋ฐ”๊พธ์–ด ์ž‘์—…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. git mung "์ปค๋ฐ‹ ๋‚ด์šฉ" ์œ„ ํ•œ์ค„๋งŒ ์ž…๋ ฅํ•˜๋ฉด, add+commit+push๊ฐ€ ๋ชจ๋‘ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ์•ž์—์„œ ์ž‘์—…ํ•œ๋Œ€๋กœ ์„œ๋ฒ„ ๋ฐฐํฌ๊นŒ์ง€ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ ๋œ๋‹ต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ git alias ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜น์‹œ ์ €์™€ ๊ฐ™์ด ํ•œ ์ค„๋กœ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์œผ์‹  ๋ถ„๋“ค์€ git alias ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.ํ„ฐ๋ฏธ๋„์— ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅ์„ ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. git config --global alias.mung '!f() { git ..

    8. ์„œ๋ฒ„ ์ž๋™ ๋ฐฐํฌ (3) ๋กœ์ปฌ ์†Œ์Šค -> git push -> github -> ์„œ๋ฒ„ ์ž๋™ ๋ฐฐํฌ ํ™•์ธ

    ๐Ÿบ ์ž๋™ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๊ธฐ๋ณธ์ ์ธ ์ค€๋น„๊ฐ€ ๋ชจ๋‘ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ž๋™ ๋ฐฐํฌ๊ฐ€ ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 1. git push๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด ๋กœ์ปฌ ์†Œ์Šค๊ฐ€ ์•ฝ๊ฐ„์ด๋ผ๋„ ์ˆ˜์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” data ํด๋” ๋ฐ‘์— ์žˆ๋Š” index.html ํŒŒ์ผ์„ ๋งˆ์Œ๋Œ€๋กœ ์•ฝ๊ฐ„ ์ˆ˜์ •ํ•ด์ค๋‹ˆ๋‹ค. 2. ํ„ฐ๋ฏธ๋„์— git push ๋ฅผ ์ž…๋ ฅํ•˜๊ธฐ ์ „์— ๋ฐฐํฌ๊ฐ€ ์ด๋ฃจ์–ด์ง€๋Š” ๊ณผ์ •์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋ช‡๊ฐœ์˜ ์ฐฝ์„ ์—ด์–ด๋‘ก๋‹ˆ๋‹ค. ๐Ÿ€ ํ•˜๋‚˜์˜ ์ฐฝ์— github์˜ ํ•ด๋‹น repository์˜ Actions ๋ฉ”๋‰ด์„ ์—ด์–ด๋‘ก๋‹ˆ๋‹ค. ๐Ÿ€ ๋˜๋‹ค๋ฅธ ์ฐฝ์— github์˜ ํ•ด๋‹น repository์˜ Settings-Actions-Runners ๋ฉ”๋‰ด ์ฐฝ์„ ์—ด์–ด๋‘ก๋‹ˆ๋‹ค. 3. ์ด์ œ VS Code ์˜ ํ„ฐ๋ฏธ๋„ ์ฐฝ์—์„œ git push๋ฅผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ๋ช…๋ น์„ ์ˆœ์„œ๋Œ€๋กœ ์ž…๋ ฅ..

    7. ์„œ๋ฒ„ ์ž๋™ ๋ฐฐํฌ (2) ์„œ๋ฒ„์— ์ž๋™ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ runner ์„ค์น˜

    ๐Ÿ”ด ์•ž์˜ ๊ธ€์—์„œ ์ž‘์„ฑํ•œ github action๊ณผ ์—ฐ๋™๋˜์–ด์ง€๋Š” runner๋ฅผ ์„œ๋ฒ„์— ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 1. github ํ™ˆํŽ˜์ด์ง€์—์„œ์˜ ์ž‘์—… ๊ฐ€. ๋จผ์ €, github์˜ ํ˜„์žฌ ์ž‘์—… repository ์—์„œ Settings - Actions - Runners ๋ฅผ ์„ ํƒํ•ด ์ค€ ํ›„, New self-hosted runner ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค. ๋‚˜. ํ˜„์žฌ ์„ค๋ช…ํ•˜๋Š” ์„œ๋ฒ„๋Š” Ubuntu ๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„์ด๋ฏ€๋กœ Create self-hosted runner ์ฐฝ์—์„œ Linux๋ฅผ ์„ ํƒํ•ด ์ค๋‹ˆ๋‹ค. โœ… ์ด์ œ ์œ„์— ์žˆ๋Š” ๋นจ๊ฐ„ ์ ์„ ์— ์žˆ๋Š” ๋‚ด์šฉ๋“ค์„ ํ•˜๋‚˜์”ฉ ์„œ๋ฒ„์—์„œ ์‹คํ–‰ํ•ด ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ, ์œ„ github ์ฐฝ๊ณผ ์„œ๋ฒ„ ssh ์ ‘์†์ฐฝ์„ ๊ฐ™์ด ์—ด์–ด๋‘์‹œ๊ณ  ์ž‘์—…ํ•˜๋ฉด ํŽธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. 2. ์„œ๋ฒ„์—์„œ์˜ ์ž‘์—… ๐Ÿ”ด๐Ÿ”ด ์•„๋ž˜์˜ ๋ชจ๋“  ์ž‘์—…์€..

    6. ์„œ๋ฒ„ ์ž๋™ ๋ฐฐํฌ (1) ๋กœ์ปฌ => github (Docker+Nginx_proxy+SSL+Github action)

    ๐Ÿบ ์ง€๊ธˆ๋ถ€ํ„ฐ ์šฐ๋ฆฌ๋Š” ๋กœ์ปฌ์—์„œ ์†Œ์Šค ์ˆ˜์ • ํ›„ git push ๋กœ github์— ์˜ฌ๋ฆฌ๋ฉด, ์ฆ‰์‹œ ์ž๋™์ ์œผ๋กœ ์„œ๋ฒ„์—๊นŒ์ง€ ๋ฐฐํฌ๋˜๋Š” ๊ฒƒ๊นŒ์ง€ ๊ตฌํ˜„์„ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ ์ฒซ๋ฒˆ์งธ๋กœ github์— repository๋ฅผ ์ƒ์„ฑ ํ›„ ๋กœ์ปฌ์—์„œ git phsh๋กœ github์— ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์„ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋‹น์—ฐํžˆ github์— ๊ฐ€์ž…์ด ๋˜์–ด ์žˆ์–ด์•ผ ๊ฒ ์ง€์š”? ๊ฐ€์ž… ๋ถ€๋ถ„์€ ๋”ฐ๋กœ ์„ค๋ช…ํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. 1. github์— ์ƒˆ๋กœ์šด repository ์ƒ์„ฑ ๊ฐ€. Repositories ์—์„œ New ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค. ๋‚˜. Repository name ์ž…๋ ฅ, Private ์„ ํƒ ํ›„ ๋งจ ๋ฐ‘ Create repository ๋ฅผ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค. ๋‹ค. ๋‹ค์Œ ํ™”๋ฉด์—์„œ ๋‚˜์˜ค๋Š” ๋ช…๋ น์–ด๋“ค์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค. 2. VS Code๋กœ ๋Œ์•„์™€์„œ ์ž‘์—…ํ•˜๊ธฐ ๊ฐ€. ..

728x90
๋ฐ˜์‘ํ˜•