» nginx 대용량 파일 다운로드

nginx 대용량 파일 다운로드

08 fev

Sem categoria

그 이유는 웹 서버의 아키텍처에 있습니다. Nginx는 비동기 모델을 기반으로 합니다. 전자 조사, kqueue, 실시간 신호 등과 같은 커널 호출을 사용합니다. 자세한 내용은 여기에서 확인할 수 있습니다: http://people.freebsd.org/~jlemon/papers/kqueue.pdf. 비동기 모델은 시스템 리소스를 절약하고 수천 개의 네트워크 연결을 매우 빠르고 효과적으로 처리할 수 있도록 합니다. Nginx는 디스크 I/O에 관계없이 이 개념을 사용합니다. 디스크는 많은 동시 읽기 또는 쓰기 요청으로 바쁠 수 있으며(제한된 임의 검색 속도를 염두에 두십시오) Nginx 프로세스가 해당 디스크에서 데이터를 읽으려고 하면 중지됩니다. 이는 Nginx가 대용량 파일을 배포할 때 발생하는 것입니다. Nginx 프로세스는 I/O 대기로 인해 지속적으로 차단됩니다. 나는 그런 상황에 대한 은색 총알이 없다고 말해야한다. 최상의 결과는 다른 매개 변수를 실험해야만 얻을 수 있습니다.

5) 우리가 가진 모든 경험을 감안할 때, 우리는 극적으로 전체 파일 서버 스키마를 변경하기로 결정했다. 디스크당 하나의 Nginx 인스턴스를 실행하기로 결정했습니다. 기본 Nginx 인스턴스(연결 관리자라고 부름)는 파일 경로에 따라 책임 있는 인스턴스로만 연결을 리디렉션합니다. 그것은 아이오를 사용하고 결코 동결되지 않습니다. 드라이브 인스턴스는 직접 I/O를 사용하며 한 디스크가 사용 중이더라도 다른 요청에는 영향을 주지 않습니다. 다음 구성으로 우리는 1GBps를 얻었습니다. 기본 페이지로 돌아가서 “내 다운로드 작업 목록”을 클릭합니다. 아래 docker-compose.yml 파일은 디렉터리 conf및 docker-compose.yml이 있는 파일을 만들었다고 가정합니다. 또한 Nginx 구성 파일이 conf 디렉터리 내에 있고 다운로드하려는 파일이 파일 디렉토리에 있다고 가정합니다.

우리는 문제의 근본이 Nginx에 있다고 결정했습니다. 그 결론은 간단한 테스트를 기반으로했다. 웹 서버가 900개의 활성 연결에 도달했을 때 테스트 파일을 다운로드하려고 했습니다. 다운로드 속도는 ~ 20kBps였습니다. 동시에 FTP를 통해이 파일을 다운로드하기 시작했습니다. FTP 속도는 20MB 이상이었습니다. 먼저 사용자 지정 구성 파일을 통해 Nginx 이미지를 빌드하고(이미지 및 컨테이너에 대한 자세한 내용은 이 설명서를 참조)합니다. 이렇게 하면 무언가를 다운로드해야 할 때 이미지를 시작하고 다운로드가 완료되면 중지합니다. 그렇다면 이러한 목적으로 HTTP를 사용하지 않는 것은 어떨까요? 해결책은 매우 간단합니다 : Nginx와 같은 서버를 사용하여 필요한 파일을 제공하도록 구성하십시오.

그런 다음 aria2 또는 로컬 컴퓨터에서 다른 다운로드 가속기를 사용하여 파일을 다운로드하기만 하면 됩니다. 그러나 이러한 상황이 정기적으로 발생하는 것은 않으므로 솔루션은 일시적이어야 합니다. 먼저 문서에서 Nginx 구성을 확인하여 동일하인지 확인하십시오. 웹 서버: nginx/1.10.3, 32 비트 데이터베이스: mysql PHP 버전: 7.1, 32 비트 Nextcloud 버전: (넥스트 클라우드 관리자 페이지 참조) 매일, 또한 NC12에서 발생 이전 Nextcloud/ownCloud 또는 신선한 설치: NC12에서 업데이트 에서 넥스트 클라우드를 설치 했 어: 다운로드, 매일 편집: 다운로드 2.2 GB, 완료 후.

Agência de Marketing Digital - Criação de Sites - Otimização de Sites