>  기사  >  운영 및 유지보수  >  Nginx가 요청 연결을 병합하고 웹사이트 액세스를 가속화하는 방법

Nginx가 요청 연결을 병합하고 웹사이트 액세스를 가속화하는 방법

王林
王林앞으로
2023-05-15 10:16:18728검색

Tips

우리가 웹을 탐색할 때, 동시 브라우저 수인 탐색 속도에 영향을 미치는 중요한 요소가 있습니다. 동시성 수는 간단히 말해서 웹 페이지를 탐색할 때 동시에 수행되는 작업 수를 나타냅니다.

물론, 브라우저의 동시 요청 수 제한은 동일한 도메인 이름에 대한 것입니다. 동일한 도메인 이름으로 동시에 요청하는 횟수에는 일정한 제한이 있습니다.

먼저 각 브라우저의 동시 연결 수를 살펴보겠습니다.

Nginx가 요청 연결을 병합하고 웹사이트 액세스를 가속화하는 방법

이 결정을 내릴 때 브라우저가 고려할 수 있는 사항을 나열해 보겠습니다.

  • tcp 프로토콜의 제한으로 인해 PC는 측면에는 외부 연결에 사용할 수 있는 포트가 65536개만 있으며 운영 체제는 운영 체제의 tcpip 프로토콜 스택 리소스가 빨리 소모되는 것을 방지하기 위해 반 개방 연결 수를 제한합니다. 따라서 브라우저는 너무 많은 연결을 발행해서는 안 됩니다. 하지만 TCP 연결을 다 사용한 후에는 다시 사용하거나 간단히 TCP 연결을 다시 설정하세요.

  • 블로킹 소켓 모델을 사용하여 연결을 설정하는 경우 동시에 여러 연결을 실행하면 브라우저가 여러 스레드를 더 열어야 하며 스레드는 때때로 경량 리소스로 간주되지 않습니다. 컨텍스트 전환 비용이 많이 들면 수행됩니다.

  • 서버를 보호하는 성실한 클라이언트 역할을 하는 브라우저입니다. 이더넷의 충돌 감지 메커니즘과 마찬가지로 클라이언트는 공용 리소스를 사용할 때 대기 기간을 스스로 결정해야 합니다. 2개 이상의 클라이언트가 공용 리소스를 사용하려는 경우 강력한 사악한 클라이언트로 인해 약한 클라이언트가 공용 리소스에 완전히 액세스하지 못하게 될 수 있습니다. 과거 Xunlei는 HTTP 프로토콜 클라이언트로서 서버에 대한 압력을 고려하지 않았기 때문에 업로드 볼륨을 상환해야 하는 의무를 고려하지 않았다는 이유로 비판을 받았습니다.

Taobao tengine

우리가 일부 웹사이트를 방문하면 코드의 일부 js 및 css 파일이 하나의 요청을 통해 얻어지는 것을 볼 수 있습니다. 위의 작은 지식을 통해 동시 브라우저 요청 수를 알 수 있습니다. 제한적이지만 여러 레코드를 하나의 요청으로 결합하면 응답 속도가 더 빨라질 수 있습니다.

타오바오에서 사용하는 tengine은 2011년 말부터 오픈소스로 공개된 nginx 기반의 웹서버입니다. 오픈 소스 모듈 nginx-http-concat은 여러 파일을 하나의 응답 메시지로 병합할 수 있습니다.

설치

타사 모듈 최초 설치 nginx-http-concat

wget http://tengine.taobao.org/download/tengine-2.2.0.tar.gz
wget https://github.com/alibaba/nginx-http-concat/archive/master.zip -o nginx-http-concat-master.zip
unzip nginx-http-concat-master.zip
tar -xzvf tengine-2.2.0.tar.gz
cd tengine-2.2.0

구성, 컴파일 및 설치

 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=../nginx-http-concat-master
 make
 make install

nginx가 이미 설치되어 있는 경우 타사 플러그인을 구성하기만 하면 됩니다. nginx -v, nginx 버전을 확인하고, 그렇지 않은 경우 해당 버전을 다운로드합니다.

코드를 실행하기만 하면 됩니다.

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=../nginx-http-concat-master
make

컴파일 성공 후

#复制之前请备份nginx执行文件
cp /objs/nginx /usr/local/nginx/sbin/nginx

nginx를 종료하고 다시 시작하세요.

Configuration

위치 섹션에 다음 구성을 추가하세요:

location /static/css/ {
  concat on;
  concat_max_files 20;
  concat_unique off;
  concat_types text/css application/javascript;
}

Merge method

http://static.52itstyle.com/static/css/??index.css,common.css?v=20171111

위 내용은 Nginx가 요청 연결을 병합하고 웹사이트 액세스를 가속화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제