๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐ŸŽ› Others.../- infra [linux, aws, docker, k8s]

[Nginx] Nginx์˜ ํ•ต์‹ฌ ํŒŒ์ผ nginx.conf ํŒŒ์ผ์€ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋ ๊นŒ? ๋ถ„์„ํ•ด๋ณด์ž!

by Wonit 2020. 11. 29.

์ง€๋‚œ ์‹œ๊ฐ„ ์šฐ๋ฆฌ๋Š” EC2 ์ธ์Šคํ„ด์Šค์— nginx๋ฅผ ์˜ฌ๋ ค ๊ฐ„๋‹จํžˆ ํ˜ธ์ŠคํŒ…ํ•ด๋ณด๊ธฐ๋ฅผ ํ†ตํ•ด Nginx ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‹คํ–‰์‹œ์ผœ๋ณด์•˜๋‹ค.

 

ํ•˜์ง€๋งŒ ๊ทธ ๊ณผ์ •์—์„œ ๋งŒ๋‚œ nginx.conf ํŒŒ์ผ๊ณผ nginx ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…๋งŒ ํ–ˆ๋Š”๋ฐ, ์˜ค๋Š˜์€ ๋” ๊นŠ๊ฒŒ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

Nginx ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ

์šฐ๋ฆฌ๋Š” nginx ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋œ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๊ฐ€์•ผํ•œ๋‹ค.

 

๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ ๊ธฐ๋ณธ ์„ค์ • ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒฝ๋กœ๋ฅผ ์ฐพ์•„์•ผํ•œ๋‹ค.

 

๋งŒ์•ฝ ๋‹น์‹ ์ด ์œ„์—์„œ ํ–ˆ๋˜ ๊ฒƒ ์ฒ˜๋Ÿผ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์„ yum์ด๋‚˜ wget, apt-get์œผ๋กœ ๋‹ค์šด๋ฐ›์•˜๋‹ค๋ฉด ์šด์˜์ฒด์ œ์˜ ๊ณ„์—ด๋ณ„๋กœ ๋‹ค๋ฅธ ์œ„์น˜์— ์กด์žฌํ•  ์ˆ˜ ๋„ ์žˆ๋‹ค.


ํ•˜์ง€๋ฉด ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด๋กœ ์ด ํŒŒ์ผ๋“ค์˜ ์œ„์น˜๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

> $ sudo find / -name nginx.conf

๊ทธ๋ฆฌ๊ณ  nginx.conf ํŒŒ์ผ์ด ์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์–ด๋–ค ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž.

 

๋ฆฌ๋ˆ…์Šค์—์„œ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ํŠธ๋ฆฌํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” tree ํŒจํ‚ค์ง€๋ฅผ ์ธ์Šคํ†จํ•ด์•ผํ•œ๋‹ค.

> $ sudo yum install tree
> /etc/nginx$ sudo tree

๋ช…๋ น์–ด๋กœ ํ™•์ธํ•ด๋ณด์ž.

๊ทธ๋Ÿผ ์œ„์™€ ๊ฐ™์ด ์ถœ๋ ฅ๋˜๋Š”๋ฐ, ๊ฐ๊ฐ์˜ ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค.

 

  1. nginx.conf : ๋ฉ”์ธ ์„ค์ • ํŒŒ์ผ
  2. fcgi.conf : Fast CGI ํ™˜๊ฒฝ์„ค์ • ํŒŒ์ผ

์ด์ œ nginx.conf ํŒŒ์ผ์„ ์ข€ ๋” ๊นŠ๊ฒŒ ์•Œ์•„๋ณด์ž.

nginx.conf ํŒŒ์ผ์— ๋Œ€ํ•ด์„œ

์šฐ์„  nginx.conf ํŒŒ์ผ์ด ๋ญ”์ง€ ๊ถ๊ธˆํ•˜๋‹ˆ ๋ฆฌ๋ˆ…์Šค์˜ cat๋ช…๋ น์–ด๋กœ nginx.conf ํŒŒ์ผ์„ ์—ด์–ด๋ณด์ž.

> $ sudo cat nginx.conf

๊ทธ๋Ÿผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜์˜จ๋‹ค.

๋ญ”๊ฐ€ ์™ธ๊ณ„์–ด๊ฐ€ ๋‚˜์™”๋‹ค.

 

๊ฒ๋จน์ง€ ๋ง๊ณ  ๊ฐœ๋…๋ถ€ํ„ฐ ์•Œ์•„๋ณด์ž.

nginx.conf ํŒŒ์ผ์˜ ๊ตฌ์„ฑ๊ณผ ๋””๋ ‰ํ‹ฐ๋ธŒ

nginx.conf ํŒŒ์ผ์˜ ๊ตฌ์„ฑ์€ ๋””๋ ‰ํ‹ฐ๋ธŒ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

 

์ด๋Ÿฐ ๋””๋ ‰ํ‹ฐ๋ธŒ๋“ค์€ ๋ธ”๋ก๊ณผ ์ปจํ…์ธ ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”๋ฐ Directive = Block + Countext๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋œ๋‹ค.

๋””๋ ‰ํ‹ฐ๋ธŒ๋ฅผ ๋๋‚ด๋Š” ๋ฐฉ๋ฒ•

  • ์„ธ๋ฏธ์ฝœ๋ก 
  • ์ค‘๊ด„ํ˜ธ ๋ธ”๋ก

nginx.conf ์—์„œ ์ฃผ์„

  • #

๊ทธ๋Ÿผ ์ด์ œ nginx.conf ํŒŒ์ผ์„ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ์ƒ๊ฒผ๋‹ค.

 

๋””๋ ‰ํ‹ฐ๋ธŒ๋“ค๋กœ ๋‚˜๋ˆ ๋ณด์ž.

nginx.conf์—์„œ ์ตœ์ดˆ์˜ ๋””๋ ‰ํ‹ฐ๋ธŒ์™€ ๋ธ”๋ก

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
       . . .
}

http {
       . . .
}

์ด๋Š” nginx.conf ํŒŒ์ผ์— ์žˆ๋Š” ๋””๋ ‰ํ‹ฐ๋ธŒ์™€ ๋ธ”๋ก์ด๋‹ค.

 

nginx.conf์—์„œ ์ตœ์ดˆ์˜ ๋””๋ ‰ํ‹ฐ๋ธŒ์™€ ๋ธ”๋ก์„ ๋‚˜๋ˆ„๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๋””๋ ‰ํ‹ฐ๋ธŒ

์ตœ์ดˆ ๋””๋ ‰ํ‹ฐ๋ธŒ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„œ๋œ๋‹ค.

  • user
  • worker_processes
  • error_log
  • pid

์–˜๋“ค์€ ์–ด๋–ค ํŠน์ • ๋ธ”๋ก์ด๋‚˜ ์ปจํ…์ŠคํŠธ์— ํฌํ•จ๋˜์ง€ ์•Š๋Š” ๋ฉ”์ธ ์ปจํ…์ŠคํŠธ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.


user์ด๊ฒŒ root๋กœ ์ง€์ •๋˜์–ด์žˆ์œผ๋ฉด ์›Œ์ปค ํ”„๋กœ์„ธ์„œ๊ฐ€ root๋กœ ๋™์ž‘ํ•˜๊ฒŒ ํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์›Œ์ปค ํ”„๋กœ์„ธ์Šค๋ฅผ ์•…์˜์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์„œ ๋ณด์•ˆ์ƒ ์œ„ํ—˜ํ•˜๋‹ค.

worker_process

์›Œ์ปค ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ช‡ ๊ฐœ๋ฅผ ์ƒ์„ฑํ•  ๊ฒƒ์ธ์ง€ ์ง€์ •ํ•œ๋‹ค.

worker_connections

์ด๋ฒคํŠธ ์•ˆ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ง€์‹œ์–ด์ธ๋ฐ ๋™์‹œ์— ์ ‘์†์„ ์–ผ๋งˆ๋‚˜ ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ธ์ง€ ์ง€์ •ํ•˜๋Š” ๊ฐ’์œผ๋กœ worker_process๊ฐ€ 4๊ณ  worker_connections๊ฐ€ 1024๋ฉด 4 * 1024๋กœ 4096์˜ ์ปค๋„ฅ์…˜์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ธ”๋ก

๋ฉ”์ธ ์ปจํ…์ŠคํŠธ์™€ ๋ณ„๊ฐœ๋กœ ์ถ”๊ฐ€์ ์ธ ๋””๋ ‰ํ‹ฐ๋ธŒ๋กœ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋ธ”๋ก์ด ์žˆ๋”ฐ.

  • events {}
  • http {}

Http ๋ธ”๋ก

http ๋ธ”๋ก์€ ์›น ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋””๋ ‰ํ‹ฐํ”„๋ธ”์„ ๋‹ด๊ณ  ์žˆ์œผ๋ฉด์„œ Universal๋ธ”๋ก์ด๋ผ๊ณ ๋„ ํ•˜๋”๋ผ.


๊ทธ๋ฆฌ๊ณ  http ๋ธ”๋ก์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  ๋””๋ ‰ํ‹ฐ๋ธŒ๋“ค์€ nginx ๋ฌธ์„œ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

Server ๋ธ”๋ก

ํ•˜๋‚˜์˜ ์›น ์‚ฌ์ดํŠธ๋ฅผ ์„ ์–ธํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๊ณ , ๊ฐ€์ƒ ํ˜ธ์ŠคํŒ…์˜ ๊ฐœ๋…์ด๊ณ  ํ•˜๋‚˜์˜ ์„œ๋ฒ„๋กœ ๋‘ ๊ฐœ๋ฅผ ๋™์‹œ์— ์šด์˜ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

location ๋ธ”๋ก

server ๋ธ”๋ก ์•ˆ์—์„œ ๋‚˜์˜ค๋ฉด์„œ ํŠน์ • url์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด์„œ http://localhost:80/login ๊ณผ http://localhost:80/join์œผ๋กœ ์ ‘๊ทผ์„ ๋‹ค๋ฅด๊ฒŒ ํ•˜๊ณ ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ๋˜๋Š”๋ฐ ์ด๋Š” ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์—์„œ๋„ ๋‚˜์˜ค๋‹ˆ ์ฃผ์˜๊นŠ๊ฒŒ ๋ด๋‘์ž.

events ๋ธ”๋ก

์ฃผ๋กœ ๋„คํŠธ์›Œํฌ์˜ ๋™์ž‘ ๋ฐฉ๋ฒ•๊ณผ ๊ด€๋ จ๋œ ์„ค์ •๊ฐ’๋“ค์„ ๊ฐ–๋Š”๋‹ค.

 

 

๋Œ“๊ธ€