Nginx
고성능 웹서버로 나왔으며, 리버스 프록시, 이메일 관련 프록시 등을 수행하며 기존의 스레드 기반의 톰캣의 10K Connection문제등을 해결하기 위한 보조 웹 서버로 나왔습니다.
Master - Worker
Nginx는 Master - worker 프로세스로 나누어져 있고 worker 프로세스들을 관리합니다. Nginx 설정 파일에 따라 worker 프로세스를 관리하고 설정들을 읽습니다. 이로 인한 주요 장점으로는 worker 프로세스들로 여러 처리를 유연하게 하며 서비스를 중단 없이 nginx 설정을 바꿀 수 있습니다. 또한 하나의 worker 프로세서에 문제가 생겨도 다른 프로세서에는 문제가 발생하지 않습니다.
만약 설정이 바뀔 경우 처리 중이던 worker 프로세스는 그대로 두고 차례로 변경된 설정을 worker 프로세스에 반영합니다.
다음 명령어는 문법오류 검사 후 적용하는 명령 예시입니다.
sudo nginx -t && sudo nginx -s reload
주요 설정 파일
기본 디렉터리
기본 디렉터리는 /etc/nginx이며 /etc/nginx/nginx.conf 파일에 nginx 기본 설정 파일이 있습니다. 여기에서 하위에 있는 conf.d 디렉터리에서 includes "*.conf";
를 통해 다양한 conf 파일들을 가져옵니다.
nginx.conf를 직접 수정하는 것보단 conf.d 디렉터리에서 설정파일을 추가하는 것이 더 추천하는 방식입니다.
기본 설정
만약 설정 파일을 추가할 경우입니다. 현재 최신 버전에서는 conf.d의 conf 파일은 없습니다./etc/nginx/conf.d/default.conf
파일을 추가한다고 가정할 때
server {
listen 80 default_server;
location / {
root /usr/share/nginx.html;
index index.thml index.htm;
}
}
다음 설정은 server 지시자를 이용해 80 포트를 default_server로 지정하여 /로 들어오는 요청을 location 지시자 안에 있는 명령을 수행하게 합니다. default_server지시자는 기본값이며 특정 도메인 지정 시 해당 도메인에 대한 요청이어야만 접속이 가능합니다. root 지시자는 콘텐츠를 제공할 때 서버의 어떤 경로에서 파일을 찾을지 지정해 줍니다.
해당 파일은 nginx.conf내에 http블록 지시자에 위치하게 됩니다.
만약 tcp, udp 등의 다른 L4수준의 제어를 원한다면 nginx.conf를 수정하고 conf.d에 tcp, udp에 규칙을 정하여 설정파일을 읽는 것을 추천합니다.
로그
/var/log/nginx
엔진엑스의 기본 로그가 저장됩니다.
/var/log/nginx/error.log
로그는 nginx.conf에서 위치를 지정할 수 있으며 에러로그의 경우 에러만을 확인하고 싶을 때 에러만을 담습니다.
| 참고
지시자에 대한 추가정보는
https://nginx.org/en/docs/http/ngx_http_core_module.html#location
'Infra > Nginx' 카테고리의 다른 글
Nginx LoadBalancing 2 (0) | 2024.06.20 |
---|---|
Nginx Load Balancing 기능 1 (0) | 2024.05.15 |
댓글