nginx.conf를 편집하여 파일 크기 업로드를 늘리는 방법


106

maximum file size업로드 할 수있는 것을 늘리고 싶습니다 .
온라인에서 조사한 결과 'nginx.conf'파일을 편집해야한다는 것을 알게되었습니다.
현재이 파일에 액세스 할 수있는 유일한 방법은 Putty를 통해 다음 명령을 입력하는 것입니다.

vi /etc/nginx/nginx.conf

그러면 파일이 열리지 만 이제 두 가지 질문이 있습니다.

  1. 이 파일을 어떻게 편집합니까?
  2. 온라인에서 다음 코드 줄을 추가해야한다는 사실을 발견했습니다.

client_max_body_size 8M;

이 코드 줄을 어디에 넣을 nginx.conf까요?

답변:


200

client_max_body_size 추가

이제 파일을 편집하고 있으므로 다음과 같이 서버 블록에 줄을 추가해야합니다.

server {
    client_max_body_size 8M;

    //other lines...
}

여러 사이트를 호스팅하는 경우 다음과 같이 http 컨텍스트에 추가하십시오.

http {
    client_max_body_size 8M;

    //other lines...
}

또한 upload_max_filesize동일한 크기의 파일을 업로드 할 수 있도록 php.ini 파일에서을 업데이트하십시오 .

Vi에 저장

완료되면 저장해야합니다 . esc키 를 누르고 입력 :wq하고 돌아 오면 vi에서이 작업을 수행 할 수 있습니다 .

Nginx 및 PHP 다시 시작

이제 구성을 다시로드하려면 nginx와 php를 다시 시작해야합니다. 다음 명령을 사용하여 수행 할 수 있습니다.

sudo service nginx restart
sudo service php5-fpm restart

또는 PHP 서비스가 무엇이든간에.


8
http {모든 서버가 상속 하도록 컨텍스트 에 추가하는 것은 나쁜 생각이 아닙니다. 그리고 당신이 당신의 조정 것을 확인 upload_max_filesize에서 php.ini당신의 nginx 설정과 일치하도록합니다. Homestead / Vagrant를 사용하여 Laravel을 실행하는 경우 해당 파일은 /etc/php5/fpm/php.ini.
damiani 2014

예, 저는 Laravel Homestead를 사용하고 있다는 것을 언급하는 것을 잊었습니다. 그래서 '/etc/php5/fpm/php.ini'를 열고 'upload_max_filesize = 2M'코드 줄을 찾았으므로 '2M'이 '8M'이되도록 변경하고 싶습니다. 이 편집을 수행하면 'Ctrl Z'를 눌러 파일을 종료 한 다음 'sudo service nging restart'를 실행합니까?
Jeff P.

ctrl-z를 누르지 않습니다. vi로 저장하고 esc를 누른 다음 : wq를 입력하고 Enter를 누릅니다.
Matt Burrow 2014

2
편집기에서 나와서 vi 명령 앞에 sudo를 추가합니다. 그렇게; sudo vi /etc/nginx/nginx.conf 또는 sudo vi /etc/php5/fpm/php.ini
Matt Burrow

2
sudo nginx -s reload다시로드는 nginx를 다시 시작하지 않고 구성
Vincnetas

12

nginx 프록시를 docker 컨테이너 (예 : jwilder / nginx-proxy )로 사용하는 경우 다음과 같은 구성 방법 client_max_body_size(또는 기타 속성)이 있습니다.

  1. /etc/nginx/proxy.conf를 들어이 속성에 대한 올바른 값을 사용 하여 사용자 지정 구성 파일을 만듭니다.
  2. 컨테이너를 실행할 때 예를 들어 볼륨으로 추가하십시오. -v /etc/nginx/proxy.conf:/etc/nginx/conf.d/my_proxy.conf:ro

구성을 변경하기 위해 사용자 정의 컨테이너를 빌드 할 필요가 없기 때문에 개인적으로이 방법이 다소 편리하다는 것을 알았습니다. 나는와 관련이 없으며 jwilder/nginx-proxy내 프로젝트에서 사용하고 있었으며 위에서 설명한 방법이 도움이되었습니다. 다른 사람에게도 도움이되기를 바랍니다.


1
이 관련 프로젝트 : github.com/evertramos/…(jwilder 의 nginx-proxy와 lets encrypt의 인증서 생성이 결합 됨)에는이를 수행하기위한 깔끔한 스크립트가 있으며이 옵션이 미리 구성되어 있습니다 (100M까지). 샘플에서 .env를 만듭니다. 줄의 주석 처리를 제거하십시오 #USE_NGINX_CONF_FILES=true. 실행 start.sh하고 마지막으로 docker-compose up. (저는 어느 프로젝트와도 관련이 없습니다).
glaux

3

먼저 php.ini 경로 탐색

sudo vi /etc/php/7.2/fpm/php.ini

그런 다음 다음 변경

upload_max_filesize = 999M
post_max_size = 999M

그때 ESC-->:wq

이제 마지막으로이 명령을 붙여 넣으십시오.

sudo systemctl restart php7.2-fpm.service

당신은 끝났습니다.


2

하루 종일 client_max_body_size 및 upload_max_filesize + post_max_size를 늘릴 수 있습니다. HTTP 시간 제한을 조정하지 않으면 작동하지 않습니다.

// 이것을 조정해야하며 아마도 PHP 쪽에서도 가능합니다. client_body_timeout 2min // 1GB 파일 업로드


웹 서버 조정에 대한 자세한 내용은 다음을 참조
Digital Human
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.