๐ŸŒ Infra

[Nginx] Nginx๋กœ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ ํ•˜๊ธฐ

jcowwk 2025. 1. 11. 13:07

Nginx๋กœ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ ํ•˜๊ธฐ


1. Nginx

2. ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ

3. Nginx๋กœ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ ํ•˜๊ธฐ


1. Nginx

Nginx๋Š” ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์›น ์„œ๋ฒ„(web server) ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ •์  ํŒŒ์ผ๊ณผ ๋™์  ํŒŒ์ผ์„ ๋ชจ๋‘ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” WAS(Web Application Server)์˜ ๋ถ€๋‹ด์„ ์ค„์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ์›น ์„œ๋ฒ„(web Server)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Nginx๋Š” ์›น ์„œ๋ฒ„(web server) ์™ธ์—๋„ ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ(reverse proxy), ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ(load balancer) ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

 

ํ•ด๋‹น ํฌ์ŠคํŒ…์—์„œ๋Š” Nginx์˜ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ(load balancer) ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

2. ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ

ํ•œ ์„œ๋ฒ„์— ํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ฆด ๊ฒฝ์šฐ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์Šค์ผ€์ผ ์—…(scale up)๊ณผ ์Šค์ผ€์ผ ์•„์›ƒ(scale out)์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

์Šค์ผ€์ผ ์—…(scale up)์€ ์„œ๋ฒ„ ๋‚ด์˜ CPU์™€ ๊ฐ™์€ ์ปดํ“จํ„ฐ ์ž์›์˜ ์„ฑ๋Šฅ์„ ๋†’์—ฌ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๊ณ ,

์Šค์ผ€์ผ ์•„์›ƒ(scale out)์€ ๋‹ค์ˆ˜์˜ ์„œ๋ฒ„๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐํ•˜๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.

 

์Šค์ผ€์ผ ์•„์›ƒ(scale out)์„ ํ•  ๋•Œ ๋‹ค์ˆ˜์˜ ์„œ๋ฒ„๋กœ ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐํ•˜๋Š” ๊ณผ์ •์„ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ,

๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์„ ๋„์™€์ฃผ๋Š” ๋„๊ตฌ๋ฅผ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

3. Nginx๋กœ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ ํ•˜๊ธฐ

- Nginx ์„ค์ •

 

1. Nginx ์„ค์น˜

$ brew install nginx

 

2. Nginx ์‹คํ–‰

$ nginx

 

Nginx ์„ค์น˜ ํ›„ ์‹คํ–‰์„ ํ•˜์—ฌ ์„ค์น˜๊ฐ€ ์ž˜ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์—†๋‹ค๋ฉด ์„ค์น˜๊ฐ€ ์ž˜๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

3. Nginx ์ค‘์ง€

$ nginx -s stop

 

4. nginx.conf ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ๋กœ๋กœ ์ด๋™ 

$ cd /opt/homebrew/etc/nginx

 

Nginx ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด nginx.conf ๊ฐ€ ์žˆ๋Š” ํŒŒ์ผ ๊ฒฝ๋กœ๋กœ ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค.

 

5. nginx.conf ํŒŒ์ผ ์—ด๊ธฐ

$ vim nginx.conf

 

6. nginx.conf ํŒŒ์ผ ์ˆ˜์ •

 

vim์œผ๋กœ ๊ธ€ ์ž‘์„ฑํ•  ๋•Œ๋Š” i ๋ฅผ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

 

upstream backend {
    server localhost:8001;
    server localhost:8002;
    server localhost:8003;
}
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Port $server_port;

 

๊ธฐ์กด์˜ ์„ค์ • ์ฝ”๋“œ์—์„œ ์œ„์™€ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์•„๋ž˜์˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค.

 

 

์ €์žฅํ•  ๋•Œ๋Š” ctrl+c ๋ฅผ ํ•œ ํ›„, :wq ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

- Springboot ์„ค์ •

 

1. Config ํŒŒ์ผ ์„ค์ •

 

์—ฌ๋Ÿฌ ๊ฐœ์˜ ํฌํŠธ๋ฅผ ์—ด์–ด์ค๋‹ˆ๋‹ค.

 

2. Controller ํŒŒ์ผ ์„ค์ •

 

๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์ด ์ž˜๋˜๋Š”์ง€ ํ™•์ธ์„ ์œ„ํ•œ ์ปจํŠธ๋กค๋Ÿฌ์™€ html ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ค๋‹ˆ๋‹ค.

html ์ฝ”๋“œ๋Š” ํ•ด๋‹น ํฌํŠธ๋ฒˆํ˜ธ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ํ™”๋ฉด์œผ๋กœ ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

- ์ตœ์ข… ํ…Œ์ŠคํŠธ

 

nginx์™€ springboot ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ localhost:80์— ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ฅธ์ชฝ์˜ ๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๋ฒˆ ์ ‘์†ํ•œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ ‘์†ํ•  ๋•Œ๋งˆ๋‹ค 8001, 8002, 8003์— ํ•ด๋‹นํ•˜๋Š” ํ™”๋ฉด์œผ๋กœ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ ๋˜๋Š” ๋ชจ์Šต์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ฐธ๊ณ  ์‚ฌ์ดํŠธ

 

Nginx ์„ค์น˜ ๋ฐ Load Balancing ์ ์šฉํ•˜๊ธฐ (MacOS)

1. Nginx (N-ginx๊ฐ€ ์•„๋‹Œ engine-X๋ผ๊ณ  ๋ฐœ์Œํ•ฉ๋‹ˆ๋‹ค) Nginx๋Š” ์ตœ์‹  ์›น์˜ ์ฆ๊ฐ€ํ•˜๋Š” ์š”๊ตฌ๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋œ ๊ณ ์„ฑ๋Šฅ ์›น์„œ๋ฒ„์ž…๋‹ˆ๋‹ค. Nginx๋Š” ์ ์€ ์ž์›์˜ ์‚ฌ์šฉ์œผ๋กœ ๋†’์€ ์„ฑ๋Šฅ๊ณผ ๋†’์€ ๋™์‹œ์„ฑ์„ ๋ชฉํ‘œ๋กœ ๋งŒ

seunghyunson.tistory.com

 

 

 

[Nginx] ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ ๊ฐœ๋… ๋ฐ ๊ตฌ์ถ• - 1

์„œ๋ฒ„์˜ ๊ณผ๋ถ€ํ•˜๋กœ ์ธํ•œ shutdown์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์›น์„œ๋ฒ„๋กœ ์ด์šฉํ•˜๊ณ  ์žˆ๋Š” Nginx๋ฅผ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋กœ ์‚ฌ์šฉํ•˜๊ณ ์ž ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋จผ์ € ์ €๋Š” nodejs(express)๋กœ ์„œ๋ฒ„๊ฐ€ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ  ์•ž๋‹จ๊ณผ ๋’ท๋‹จ์— nginx๋ฅผ ํ”„๋ก

velog.io

 

๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š” !

ํ”ผ๋“œ๋ฐฑ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜์ž…๋‹ˆ๋‹ค <3