티스토리 뷰

study/nginx cookbook

Chapter1. 엔진엑스 기초

pansy0319 2023. 12. 26. 20:57
반응형

[nginx cookbook - https://product.kyobobook.co.kr/detail/S000200497075]

 

1.5 주요 설정 파일, 디렉터리, 명령어

  • 엔진엑스 주요 설정 파일과 디렉터리
    • /etc/nginx/
      • 엔진엑스 서버가 사용하는 기본 설정이 저장된 루트 디렉터리
      • 이곳에 저장된 설정 파일의 내용에 따라 동작
    • /etc/nginx/nginx.conf
      • 엔진엑스의 기본 설정파일
      • 모든 설정에 대한 진입점
      • 워커 프로스세, 개수, 튜닝, 동적 모듈 적재와 같은 글로벌 설정 항목 포함
        세부 설정 파일에 대한 참조를 지정
      • 모든 설정 파일을 포함하는 최상위 http 블록을 가지고 있음
    • /etc/nginx/conf.d/
      • 기본 http 서버 설정 파일 포함
      • 디렉터리 내 파일 중 .conf로 끝나는 파일은 /etc/nginx/nginx.conf 파일이 가진 최상위 http qmffjrdp vhgkaehla
      • nignx 설정은 include 구문을 활용해 구조화함으로써 각 설정 파일을 간결하게 유지하면 좋음
      • conf.d 디렉터리 대신 site-enabled 디렉터리, symlink를 통해 site-available 을 사용하는 방식은 더 이상 사용하지 않음
    • /var/log/nginx/
      • nginx 의 로그가 저장되는 디렉터리
      • access.log : 접근 로그 파일, 엔진엑스가 수신한 개별 요청에 대한 로그 저장
      • error.log : 오류 로그 파일, 오류 발생 시 이벤트 내용을 저장
      • nginx 설정을 통해 debug 모듈을 활성화하면 디버그 정보도 오류 로그 파일에 기록됨
  • 엔진엑스 명령어
    • ngingx -h
      • 도움말
    • nginx -v
      • 버전 정보
    • nginx -V
      • 버전정보, 빌드 정보
      • 엔진 엑스 바이너리에 포함된 모듈을 보여주는 설정 값 확인
    • nginx -t 
      • 설정 test
    • nginx -T
      • 설정 test + 결과 출력
    • nginx -s signal
      • -s 는 지정된 신호(stop, quit, reload, reopen)을 엔진엑스 마스터 프로세스에 전송
      • stop : nginx 프로세스가 즉시 동작을 멈추게 함
      • quit : 현재 진행중인 요청을 모두 처리한 뒤 nginx 프로세스를 종료
      • reload : nginx 설정을 다시 읽음
      • reopen : 지정된 로그 파일을 다시 엶

 

1.6 정적 콘텐츠 서비스하기

server { # 1
    listen 80 default_server; # 2
    sever_name www.example.com; # 3
    
    location / { # 4
    	root /usr/share/nginx/html; # 5
        # alias /usr/share/nginx/html; # 6
        index index.html index.htm; # 7
    }
}

 

  • http 프로토콜과 80 포트를 이용해 /usr/share/nginx/html 경로에 저장된 정적 콘텐츠 제공
  • #1
    • 새로운 server 블록을 선언해 nginx가 처리할 새로운 컨텍스트 정의
  • #2 
    • nginx가 80 포트로 들어오는 요청을 수신하게 함
    • 이 블록에 정의된 내용이 80 포트에 대한 기본 컨텍스트가 되도록 default_server 매개변수 사용
    • listen 지시자에 포트를 범위로 지정할 수 있음
  • #3
    • server_name 지시자에는 서버가 처리할 호스트명(hostname)이나 도메인명을 지정
    • 만약 설정이 default_server 매개변수를 통해 기본 컨텍스트로 지정되지 않았다면 nginx는 요청 호스트 헤더값이 server_name 지시자에 지정된 값과 같을 때만 server 블록에 지정된 내용을 수행함
    • 서버가 사용할 도메인이 정해지지 않았다면 default_server 매개변수를 사용해 기본 컨텍스트를 정의하고 server_name 지시자를 생략할 수 있음
  • #4
    • localtion 블록은 url의 경로를 기반으로 함. 다ㅑㅇ한 표현식을 활용해 조건을 정의할 수 있음
    • nginx는 요청된 uri에 가장 적합한 location 블록을 찾음 
    • root 지시자는 주어진 컨텍스트에서 콘텐츠를 제공할 때 서버의 어떤 경로에서 파일을 찾을지 알려줌(#5)
      root 지시자에 정의된 경로에 수신한 uri 값을 합쳐 요청된 파일을 찾음
    • location 지시자에 uri prefix를 사용했다면 이 값도 root 지시자에 지정한 값과 합쳐짐
      • 이렇게 동작하지 않도록 하려면 root 지시자 대신 alias 지시자를 사용(#6)
  • #7
    • index 지시자는 uri에 더는 참고할 경로 정보가 없을 때 nginx가 사용할 기본 파일 혹은 확인할 파일 목록을 알려줌

 

1.7 무중단으로 설정 리로드하기

  • nginx -s reload
    • 동작 중인 nginx의 마스터 프로세스에 리로드 신호를 보내 설정을 다시 읽어들이도록 지시함
    • 서버 중지 없이 엔진엑스 설정을 리로드해 패킷 손실 없이 설정을 변경함
  • nginx 는 로드밸런서 작동을 계속하면서 동적으로 설정을 변경할 수 있음
  • 이 기능을 통해 실서비스 환경에서 반복적인  설정 관리를 수행하며 동적으로 ㅅ러정 가능한 애플리케이션 인식 모듈이나 클러스터 인식 모듈을 구축해 무중단으로 nginx 설정을 리로드함
반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함