트래픽이 많은 웹사이트를 위해 확장성을 위해 설계한 비동기 이벤트 기반구조의 웹서버 소프트웨어이다.
Nginx는 가벼움과 높은 성능을 목표로 하는 웹 서버 소프트웨어로 현재 Apache 서버를 제치고 세계에서 가장 많이 사용되는 웹 서버이다.
일반적으로 웹 서버, 리버스 프록시 및 메일 프록시 기능을 가지고 있다.
Nginx는 다음과 같은 기능으로 사용할 수 있다.
HTTP Server
Reverse Proxy Server
메일 프록시 서버 (Mail Proxy Server)
Generic TCP / UDP Proxy Server
Nginx는 하나의 Master Process와 다수의 Worker Process로 구성되어 실행된다. Master Process는 설정 파일을 읽고, 유효성을 검사하고 Worker Process를 관리한다. 모든 요청은 Worker Process에서 처리한다.
Nginx는 이벤트 기반 모델을 사용하고, Worker Process 사이에 요청을 효율적으로 분배하기 위해 OS에 의존적인 매커니즘을 사용한다.
Worker Process의 개수는 설정파일에서 정의되며, 정의된 프로세스 개수와 사용 가능한 CPU 코어 숫자에 맞게 자동으로 조정된다.
윈도우 CMD 이용
윈도우에서는 cmd에서 nginx가 설치되어 있는 폴더로 이동한 후 아래의 명령어를 사용해 nginx를 제어할 수 있다.
설명 | 명령어 |
---|---|
기동 | nginx.exe |
강제 종료 | nginx -s stop |
종료 | nginx -s quit |
재시작 | nginx -s reload |
로그파일 재작성 | nginx -s reopen |
서비스 상태 확인 | tasklist /fi "imagename eq nginx.exe" |
리눅스 이용
설명 | 명령어 |
---|---|
기동 | $ sudo systemctl start nginx |
종료 | $ sudo systemctl stop nginx |
재시작 | $ sudo systemctl restart nginx |
재로드 | $ sudo systemctl reload nginx |
서비스 상태 확인 | $ sudo systemctl status nginx |
Nginx의 conf폴더의 nginx.conf 파일이 기본 환경파일이다.
기본 구조
영역 | 내용 |
---|---|
텍스트Core 모듈 | 코어 모듈은 대부분 환경 설정 파일의 최상단에 위치하며 한번만 사용할 수 있다. nginx의 기본적인 동작 방식을 정의한다. |
Http 블록 | 웹서버에 대한 동작을 설정하는 영역으로, server 블록과 location 블록의 루트 블록이다. |
Server 블록 | 하나의 웹사이트를 선언하는 데 사용된다. 가상 호스팅(Virtual Host)의 개념이다. |
Location 블록 | server 블록 내에서 특정 URL을 처리하는 방법을 정의한다. |
Events 블록 | 주로 네트워크 동작에 관련된 설정하는 영역으로, 이벤트 모듈을 사용한다. |