Linux에서 NGINX 성능을 미세 조정할 수 있는 8가지 방법
NGINX는 널리 사용되는 무료 오픈 소스 웹 서버입니다. 기본 NGINX 구성은 웹 서버를 작동시키기에 충분합니다.
그러나 NGINX를 최대한 활용하려면 구성 파일을 가지고 놀면서 서버 성능을 최적화할 매개변수를 설정해야 합니다. Linux 시스템 의 /etc/nginx 디렉토리 에서 구성 파일을 찾을 수 있습니다 .
NGINX란 무엇입니까?
NGINX는 미디어 스트리머, 메일 서버, 리버스 프록시, 로드 밸런서, 캐시 서버 등으로 사용할 수 있는 최신 웹 서버입니다.
VMware, IBM, Cisco, Apple, Microsoft LinkedIn, Netflix, Facebook, Twitter 등과 같은 많은 유명 프로필에서 사용되는 NGINX는 최고의 성능으로 널리 알려져 있습니다. NGINX 사용의 또 다른 장점은 구성 및 학습이 쉽다는 것입니다.
Linux에서 NGINX 성능 조정을 위한 전제 조건
NGINX 구성을 시작하기 전에 다음 요구 사항을 충족해야 합니다.
- Linux에 배포 및 구성된 NGINX 서버
- NGINX 및 구성 파일에 대한 기본적인 이해
이러한 요구 사항을 충족하면 최적의 성능을 위해 NGINX를 조정할 준비가 된 것입니다. 어떻게 하는지 봅시다.
1. NGINX에서 작업자 프로세스 구성
NGINX 아키텍처는 하나의 마스터 프로세스와 여러 작업자 프로세스로 구성됩니다. 마스터 프로세스의 작업은 구성을 평가하고 작업자를 관리하는 것입니다. 반면 작업자 프로세스의 역할은 들어오는 요청을 처리하고 클라이언트와 서버 간의 연결을 만드는 것입니다.
프로세스 값은 기본적 으로 자동 으로 설정됩니다. 이는 사용 가능한 CPU 코어 수와 동일한 작업자 프로세스 수를 설정합니다. 시스템에 있는 CPU 코어 수를 확인하려면 다음 명령을 실행하십시오.
grep processor /proc/cpuinfo | wc -l
작업자 프로세스 수를 늘리려면 NGINX 구성 파일에서 이를 구성해야 합니다.
nano로 파일을 엽니다.
nano etc/nginx/nginx.conf
더 많은 작업자 프로세스를 구성하려면 기본값을 시스템에서 사용 가능한 최대 CPU 코어 수로 변경하십시오.
2. 작업자 연결 구성
NGINX의 성능을 향상시키기 위해 수정할 수 있는 또 다른 매개변수는 작업자 연결입니다. 이것은 각 작업자 프로세스가 동시에 처리할 수 있는 최대 TCP 연결 수입니다.
대부분의 시스템은 기본값이 512 연결이지만 많은 최신 시스템도 더 큰 수를 지원합니다. 시스템에서 지원하는 연결 수를 확인할 수 있습니다.
ulimit -n
출력은 지원되는 최대 연결 수입니다. 그런 다음 NGINX 구성 파일에서 worker_connections 변수를 수정하여 성능을 향상시킬 수 있습니다.
3. NGINX에서 GZIP 압축 허용
NGINX는 파일 압축 및 압축 해제에 GZIP을 사용합니다. NGINX 구성 파일에서 활성화하면 연결 속도가 느릴 때 대역폭을 절약하고 웹사이트 로딩 시간을 향상시킬 수 있습니다.
GZIP 압축을 허용하려면 NGINX 구성 파일에 다음 줄을 추가합니다.
server {
gzip on;
gzip_vary on;
gzip_min_length 10240;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
gzip_disable "MSIE [1-6]\.";
}
4. NGINX의 제한 시간 제한 값
감소된 제한 시간 값은 NGINX 성능 향상에도 중요한 역할을 합니다. keepalive 연결 은 연결을 열고 닫을 때 프로세서와 네트워크 오버헤드를 줄입니다.
구성 파일에서 다음 매개변수를 수정하여 제한 시간을 제한할 수 있습니다.
http
{
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;
}
5. 버퍼 크기 조정
NGINX 버퍼를 조정하여 서버 성능을 최적화할 수도 있습니다. 버퍼 크기가 너무 작으면 NGINX는 대규모 I/O 작업이 지속적으로 실행되도록 하는 임시 파일에 씁니다.
NGINX가 최상의 상태로 작동하려면 다음 버퍼 매개변수를 설정해야 합니다.
http
{
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 4k;
}
6. 액세스 로그 비활성화 또는 액세스 로그 버퍼링 활성화
로그는 모든 요청을 기록하는 경우 서버의 성능에 영향을 미칠 수 있는 많은 양의 디스크 공간과 CPU/IO 주기를 사용합니다.
일부 디스크 공간과 CPU 처리를 절약하는 액세스 로그를 비활성화할 수 있습니다. 액세스 로그를 비활성화하려면 NGINX 구성 파일에 다음 줄을 추가합니다.
access_log off;
로그는 문제 해결에 도움이 되므로 중요합니다. 로그를 완전히 비활성화하는 것은 좋은 방법이 아닙니다. 이 경우 액세스 로그 버퍼링을 활성화할 수 있습니다. 이렇게 하면 NGINX가 일련의 로그를 버퍼링하고 각 요청에 다른 로그 작업을 적용하는 대신 한 번에 함께 로그 파일에 기록할 수 있습니다.
NGINX 구성 파일에 다음 줄을 추가하여 액세스 로그 버퍼링을 허용합니다.
access_log /var/log/nginx/access.log main buffer=16k
7. NGINX에서 정적 콘텐츠 캐싱 기간 조정
페이지 전체에서 동일하게 유지되는 웹 사이트의 콘텐츠를 정적 콘텐츠라고 합니다. 이 콘텐츠를 캐싱하면 쉽게 액세스할 수 있는 위치에 배치할 수 있습니다. 이 메커니즘은 대역폭 사용을 줄이고 빠른 액세스를 허용하며 결과적으로 웹 사이트의 성능을 향상시킵니다.
클라이언트가 정적 콘텐츠를 요청하면 서버는 콘텐츠의 캐시된 버전을 제공합니다. /etc/nginx/sites-available 디렉토리 에 있는 가상 호스트 파일에 다음 줄을 추가합니다 .
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 90d;
}
이 구성은 마지막 브라우저 액세스 시간 이후 90일 동안 파일을 캐시합니다.
8. NGINX에서 열린 파일 캐시 활성화
NGINX 구성 파일에서 열린 파일 캐시 매개변수를 사용하여 성능을 향상시킬 수도 있습니다. 이 지시문을 사용하면 파일 설명자와 자주 방문하는 파일을 서버에 캐시할 수 있습니다.
열린 파일 캐시를 활성화하려면 구성 파일 의 http 섹션에 다음 줄을 추가합니다 .
http {
open_file_cache max=1024 inactive=10s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
}
구성 파일을 수정하여 NGINX를 최대한 활용
구성을 변경하는 동안 따라야 할 좋은 방법은 한 번에 하나의 설정을 처리하고 테스트하는 것입니다. 작동하면 다음 설정으로 이동합니다. 그렇지 않은 경우 언제든지 구성을 다시 기본값으로 변경할 수 있습니다.
nginx.conf 및 가상 호스트 파일과 같은 NGINX 구성 파일에 구성된 매개 변수를 수정하여 NGINX를 해킹하여 최상의 성능을 제공할 수 있습니다.
답글 남기기