nginx.conf 분석

nginx.conf 분석을 해보자!
윤여찬's avatar
Dec 07, 2023
nginx.conf 분석
찾아본 블로그를 먼저 소개해본다! 출처!
 
nginx.conf 파일을 분석해보자
 
user : Linux 시스템의 어느 user가 nginx 서버를 소유하고 동작시킬지를 기술한다.
error_log : 에러 로그를 어느 위치의 어느 파일에 기록할지 정의한다.
warn 모드 debug 모드 두개가 있다.
error_log /home/foresys_pop/log/error.log;
access_log : NginX 웹 서버로 접속한 내역들을 어느 문서에 적을지 정한다.
#: #을 붙여서 주석처리를 할 수 있다.
 

server directive와 location directive

server { location / { root    /data/www; } }
웹 서버를 하나 만들기 위해서는 server directive한 덩어리를 만들어야 웹 서버를 생성할 수 있다.
 
자 어떻게 정적 컨텐츠를 처리하게 할 수 있을까?
서버에서 브라우저로 보내줄 정적 컨텐츠를 작성하고, 특정 티렉토리에 위치 시킨 후
서버 컴퓨터의 파일 시스템 디렉토리와 유저들이 요청할 URL을 적절하게 매핑시키면 될 것이다.
 
이를 기술한 것이 location directive 다.
location /api/ { proxy_pass http://211.6.14.71:8180/; }
위와 같이 location 뒤에 붙는 인자가 호스트 네임(hostname) 뒤에 붙는 URL 패턴이 들어가는 자리이다. 위의 경우 /api의 경로를 proxy_pass 명령오로 변경하고있다.
 
이외 → 이름, 인자값이 있고 세미콜론 ; 으로 끝납니다.
worker_processes: 몇개의 워커 프로세스를 생성할 것인지 지정하는 지시어, 1이면 모든 요청을 하나의 프로세스로 실행하겠다는 뜻. CPU 멀티코어 시스템에서 1이면 하나의 코어만으로 요청을 처리하는 셈… 이건 auto로 놓는 경우가 많다고 한다.
worker_processes 1; // auto;
pid: Nginx pid가 적혀있는 파일입니다.
include: 외부 configuration 내용을 가져옵니다. 모듈에 따라 다른 파일에 작성하고 include하는 것이 권장된다고한다.
root: static file이 있는 파일 시스템의 경로이다. 이때 root 뒤에 location의 경로가 추가된 상태로 파일의 경로를 찾는다.
server { location /images/ { root /main; } location / { proxy_pass http://211.6.14.71:8180/; } }
만약 /images/imge.png 의 요청이 들어오면 Nginx는 /main/images/imag.png에서 파일을 찾는다.
location /api/ { proxy_pass http://211.6.14.71:8180/; }
잠깐 위에서 봣던 proxy_pass: 위에 예시에서 /images/와 맞지 않는 모든 패턴의 요청은 프록시 서버로 전송된다. 이후 프록시 서버에서 응답이 클라이언트에게 전송되게 된다.
 
events { worker_connections 1024; }
events 블록 : 이벤트 블록은 네트워크 동작방법과 관련된 설정이다.
worker_connections: 하나의 프로세스가 처리할 수 있는 커넥션의 수이다. 그렇기에 worker_processes x worker_connections = 최대 접속자 수
 
우리 회사에선 개별로 나눠논 conf 파일로 인해 http 블록이 없었다.
http { include mime.types; server { listen 80; location / { root html; index index.html index.htm; } } }
http 블록: 하위에 server 블록, 그리고 location 블록을 갖는 루트 블록이다.
여기에 선언된 값은 하위 블록에 자동 상속
→ 서버의 기본값이 된다.
 
즉 이렇게 nginx conf를 사용하는 방법을 찾아보았다.
 
Share article

찬찬잉