DJANGO 기법 두 가지: 아 날로 그 MKDIR - P 및 NGINX 에 맞 춰 큰 파일 을 업로드 할 때 시간 을 초과 하지 않 습 니 다.

이것 은 모두 개발 과정 에서 어디서 문제 가 발생 했 는 지 인터넷 을 돌 며 기록 하 는 것 이다.
http://blog.chinaunix.net/uid-25525723-id-1596574.html
http://bookshadow.com/weblog/2014/10/02/python-mkdir-p/
 
def mkdir_p(path):
    try:
        os.makedirs(path)
    except OSError as exc:  # Python >2.5 (except OSError, exc: for Python <2.5)
        if exc.errno == errno.EEXIST and os.path.isdir(path):
            pass
        else:
            raise

내 설정 은: nginx + uwsgi + django 에서 올 렸 습 니 다.
프로필 은 다음 과 같이 수정 되 었 습 니 다:
  • server {
  •         listen 8080;
  •         client_header_buffer_size 40890k;
  •         client_max_body_size 500m;
  •         client_body_buffer_size 80240k;

  •         location / {
  •             uwsgi_pass 127.0.0.1:10000;
  •             include uwsgi_params;
  •             proxy_send_timeout 300;
  •             proxy_read_timeout 300;
  •             proxy_buffer_size 512k;
  •             proxy_buffers 64 128k;
  •             proxy_busy_buffers_size 1024k;
  •             proxy_temp_file_write_size 512k;
  •             proxy_connect_timeout 30s;
  •             access_log off;
  •         }

  •         location ^~ /site_media {
  •                 root /home/xxxxxx/xxxxxx;
  •         }

  •         location ~* ^.+\.(mpg|avi|mp3|swf|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|txt|tar|mid|midi|wav|rtf|mpeg)$ {
  •             root /xxx/xxx/xxxxx/site_media;
  •             expires 30d;
  •             access_log off;
  •         }

  • }

  • proxy 의 이 매개 변 수 를 비교적 크게 조정 하면 됩 니 다. 그렇지 않 으 면 buffer 가 부족 합 니 다.
     
     
    이 몇 개의 매개 변수 에 대한 설명 을 첨부 합 니 다.
    proxy_buffer_size
    default: proxy_buffer_size 4k/8k
    context: http, server, location
    이 명령 은 버퍼 크기 를 설정 합 니 다. 프 록 시 백 엔 드 서버 에서 얻 은 첫 번 째 응답 내용 을 여기에 놓 습 니 다.
    작은 응답 header 는 보통 이 부분 응답 내용 에 있 습 니 다.
    기본적으로 이 버퍼 크기 는 명령 proxy buffers 가 설정 한 것 과 같 습 니 다. 단, 더 작 게 설정 할 수 있 습 니 다.
     
    proxy_buffering 
    syntax: proxy_buffering on|off
    default: proxy_buffering on
    context: http, server, location
    이 명령 은 백 엔 드 에서 프 록 시 서버 의 응답 내용 버퍼 를 엽 니 다.
    버퍼 가 열 리 면 nginx 는 프 록 시 백 엔 드 서버 가 가장 빠 른 속도 로 응답 할 것 이 라 고 가정 하고 명령 proxy buffer size 와 proxy buffers 가 지정 한 버퍼 에 내용 을 저장 합 니 다.
    응답 내용 을 메모리 에 넣 을 수 없다 면 일부 내용 은 디스크 에 기 록 됩 니 다.
    버퍼 가 닫 히 면 응답 내용 은 가 져 온 내용 에 따라 클 라 이언 트 로 즉시 동기 화 됩 니 다.
    nginx 는 프 록 시 전체 응답 내용 의 크기 를 계산 하지 않 습 니 다. nginx 가 서버 에서 받 아들 일 수 있 는 최대 데 이 터 는 명령 proxy buffer size 에서 지정 합 니 다.
    긴 폴 링 (long - polling) 을 기반 으로 한 Comet 응용 프로그램 에 있어 서 proxy buffering 을 닫 는 것 이 중요 합 니 다. 그렇지 않 으 면 비동기 응답 이 캐 시 되 어 Comet 이 작 동 하지 않 습 니 다. 
     
    proxy_buffers
    문법: proxy_buffers the_number is_size;
    기본 값: proxy_buffers 8 4k/8k;
    문맥: http, server, location
    이 명령 은 버퍼 의 크기 와 수량 을 설정 합 니 다. 프 록 시 백 엔 드 서버 에서 받 은 응답 내용 을 여기에 배치 합 니 다. 기본 적 인 상황 에서 버퍼 의 크기 는 메모리 페이지 크기 와 같 습 니 다. 4K 일 수도 있 고 8K 일 수도 있 습 니 다. 이것 은 플랫폼 에 달 려 있 습 니 다.
     
    proxy_connect_timeout
    문맥: http, server, location 이 매개 변 수 는 프 록 시 서버 와 연결 하 는 시간 초과 시간 을 정의 합 니 다. 이 time out 시간 이 75 초 를 초과 할 수 없 음 을 유의 해 야 합 니 다. 이것 은 서버 가 페이지 로 돌아 가기 시작 하 는 시간 이 아 닙 니 다. (이것 은 proxy read timeout 의 정의 입 니 다) upstream 서버 가 온라인 에 있 으 면 끊 습 니 다. (예 를 들 어 요청 을 처리 할 프로 세 스 가 아직 충분 하지 않 습 니 다. 연결 풀 에 놓 고 처 리 를 기다 리 십시오)서버 와 의 연결 이 이미 구축 되 었 기 때문에 이 매개 변 수 는 당신 을 도 울 수 없습니다. 
     
    proxy_max_temp_file_size
    문법: proxy_max_temp_file_size size;
    기본 값: proxy_max_temp_file_size 1G;
    문맥: http, server, location, if
    Available since: 0.1.8
    TODO: Description.
     
      
     
     

    좋은 웹페이지 즐겨찾기