Image

지식 기반 → nginx 서비스에 의한 요청 처리 속도 최적화

최적의 nginx 설정을 사용하면 요청 처리 속도를 높일 수 있습니다. 공유 호스팅에서는 원칙적으로 호스팅 제공업체의 전문가가 모든 설정을 이미 완료했습니다. 그리고 가상 서버에서 사이트를 호스팅하는 경우 모든 설정이 독립적으로 이루어집니다.

사이트가 더 빠르게 작동하도록 하려면 nginx 웹 서버가 더 빠르게 작동할 수 있는 구성을 확인하는 것이 좋습니다.

1. 기본 설정을 확인해보자

nano /etc/nginx/nginx.conf

1.1 이 옵션은 가상 서버의 코어 수를 자동으로 결정합니다.

worker_processes auto;

1.2 압축 설정

        gzip on;
        gzip_vary on;
	gzip_proxied any;
	gzip_comp_level 6;
	gzip_buffers 16 8k;
	gzip_http_version 1.1;
	gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/ xml+rss text/javascript;

1.3 http/2를 활성화하자

Listen 라인에서 ssl 뒤의 웹 호스트 파일의 서버 섹션에 http2를 추가해 보겠습니다. 이 옵션은 https에만 추가해야 합니다.

server {
    listen 89.xx.77.xx:443 ssl http2;
    listen [2a01:xx:4:x::xx]:443 ssl http2;

1.3.1 HTTP2의 동작을 확인해 봅시다

nginx -t
service nginx restart
curl -I https://your-domain.tld

우리는 다음과 같은 결과를 얻습니다:

HTTP/2 200 
server: nginx
content-type: text/html; charset=UTF-8
vary: Accept-Encoding
cache-control: no-cache, private
date: Tue, 26 Mar 2024 10:39:35 GMT

1.4 최대 연결 수를 구성해 보겠습니다.

기본값은 768입니다. 운영 체제에서 지정한 숫자로 변경해 보겠습니다.

1.4.1 값을 확인해보자

ulimit -n

1024

1.4.2 nginx 설정 파일에서 설정해 보겠습니다

nano /etc/nginx/nginx.conf
events {
	worker_connections 1024;
}

1.5 버퍼 크기를 구성해 봅시다

기본적으로 nginx의 버퍼 크기는 메모리 한 페이지입니다. 캐시에서 더 많은 요청을 처리할 수 있도록 호스트 섹션 내부의 값을 변경해 보겠습니다 http {}.

nano /etc/nginx/conf.d/domain-tld.conf
http {
...    

client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 4k;

...
}

1.6 요청 처리 시간 초과 설정

로드가 높고 대기 시간이 짧은 경우, nginx 웹 서버가 php-fpm으로부터 응답을 받지 못했을 때 클라이언트는 오류 메시지를 받을 수 있습니다. 이 경우 대기 시간을 늘려야 합니다.

대기 시간을 늘리면 서버의 리소스가 더 많이 소모되므로 Flooding이나 DDoS 공격이 발생할 경우 부정적인 영향을 미칠 수 있으므로 주의하시기 바랍니다.

nano /etc/nginx/conf.d/domain-tld.conf
http {
...    

client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;

...
}

이제 nginx는 더 빠른 속도로 요청을 처리합니다. 모든 변경을 완료한 후 구성 파일에 오류가 있는지 확인하고 서비스를 다시 시작하여 변경 사항을 적용하십시오.

nginx -t
service nginx restart

준비가 된.





No Comments Yet