업로드 모듈 의 nginx 컴 파일 과 설정 을 추가 합 니 다.

5563 단어
ubuntu 에 nginx 를 설치 하 는 것 은 쉬 운 편 입 니 다. sudo apt-get install nginx 명령 하나 로 해결 할 수 있 습 니 다.그러나 업로드 모듈 을 사용 하려 면 다시 컴 파일 해 야 합 니 다. 이것 은 apt - get 으로 설 치 된 nginx 를 사용 하려 면 설정 파일 을 포함 하여 마 운 트 해제 해 야 한 다 는 것 을 의미 합 니 다. sudo apt-get autoremove --purge nginx 그리고 nginx 업로드 에 필요 한 모듈 을 다운로드 해 야 합 니 다.
소스 코드 다운로드
1. 업로드 모듈 과 업로드 진행 모듈 다운로드
cd
mkdir tmp && cd tmp
git clone -b 2.2 https://github.com/vkholodkov/nginx-upload-module.git
git clone https://github.com/masterzen/nginx-upload-progress-module.git

2. nginx 의 원본 코드 다운로드: 주의: 최신 1.12.0 을 사용 하면 오류 (md5 오류, 해결 되 지 않 음) 가 발생 할 수 있 습 니 다. 1.10. x 를 사용 하면 됩 니 다.
http://nginx.org/en/download.html

위 에 있 는 사이트 에 직접 올 라 가서 다운로드 한 후에 스트레스 를 풀다.
설치 의존 도:
sudo apt-get install libpcre3 libpcre3-dev 

이 가능 하 다, ~ 할 수 있다,...
sudo apt-get install openssl libssl-dev

컴 파일 시작:
압축 을 푸 는 nginx 디 렉 터 리 에 들 어 갑 니 다.
sudo ./configure  --add-module=/home/xxx/tmp/nginx-upload-module --add-module=/home/xxx/tmp/nginx-upload-progress-module

여기에 두 개의 모듈 이 추가 되 었 습 니 다. 자신 이 다운로드 한 두 개의 모듈 주소 에 대응 하 십시오.
sudo make 
make install

컴 파일 에 주의 하 십시오. 마지막 으로:
포장 가능: (무시 가능)
sudo apt-get install checkinstall #      
sudo checkinstall -D -y -install=no -default make install

dpkg 로 설치:
sudo dpkg -i nginx_1.4.6-1_amd64.deb

dpkg 설치 시 이 문제 가 발생 할 수 있 습 니 다.
dpkg: error processing archive nginx_1.4.6-1_amd64.deb (--install):
 trying to overwrite '/etc/nginx/win-utf', which is also in package nginx-common 1.10.0-0ubuntu0.16.04.4
Errors were encountered while processing:
 nginx_1.4.6-1_amd64.deb

이렇게 하면 설치 할 때 매개 변 수 를 추가 하면 됩 니 다. 이 방법 은 이전의 nginx 를 덮어 씁 니 다.
sudo dpkg -i --force-overwrite nginx_1.4.6-1_amd64.deb

수정 nginx
nginx 를 설정 하기 전에: 다른 서버 / etc / init. d / nginx 파일 을 복사 해 야 합 니 다. 컴 파일 된 nginx 는 service 시작 에 추가 되 지 않 았 기 때문에 귀 찮 습 니 다. 시험 을 본 후에 고 쳐 야 할 부분 은:
PATH 마지막 에 / usr / local / nginx / sbin 추가: PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/nginx/sbin: DAEMON 수정: DAEMON=/usr/local/nginx/sbin/nginx NGINXCONF_FILE 수정 NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"nginx 권한 수정:
sudo chmod 755 /etc/init.d/nginx

이제 nginx 를 다시 시작 할 수 있 습 니 다.
sudo /etc/init.d/nginx -s reload

nginx 파일 설정:
여기 참조 하 셔 도 됩 니 다.https://hui.lu/upload-file-with-nginx-upload-file/
 location /upload {
 65             upload_pass @test; #          ,          /upload    
 66             upload_resumable on;
 67             upload_cleanup 400 413 404 499 500-505;
 68             upload_store /tmp 1;
 69             upload_store_access user:rw all:rw;
 70         #     upload_limit_rate 0;
 71             upload_set_form_field "file_name" $upload_file_name;
 72             upload_set_form_field "content_type" $upload_content_type;
 73             upload_set_form_field "tmp_path" $upload_tmp_path;
 74             upload_aggregate_form_field "md5" $upload_file_md5;
 75             upload_aggregate_form_field "size" $upload_file_size;
 76             upload_pass_form_field "^.*$";
 77         #     upload_pass_args on; #    ,                   
 78         #     track_uploads proxied 30s; #        
 79         }
 80         location @test {                                                                                   
 81             proxy_pass http://localhost:8080;
 82         }

  upload module      
upload_pass

             ,             。

upload_resumble

      ,    

upload_store

         ,       hash     ,  nginx         ,       ,     

upload_state_store

             ,     ,    hash        ,      .state,       ,          

upload_store_access

nginx user          ,          

upload_set_form_field

             ,            。

$upload_field_name:          input    name  

$upload_content_type:    

$upload_file_name:   

$upload_tmp_path:       

upload_aggregate_form_field

 upload_set_form_field    ,                ,        。

$upload_file_md5:   md5sum 

$upload_file_md5_uc:       md5sum 

$upload_file_sha1:   sha1 sum 

$upload_file_sha1_uc:       sha1 sum 

$upload_file_crc32:16   CRC32     

$upload_file_size:    ,   bytes

$upload_file_number:           

upload_pass_form_field

              ,       

upload_cleanup

            ,nginx        ,      400~500  

upload_max_part_header_len

     http   , buffer size

upload_max_file_size

             ,       “ ”  ,              , client_max_body_size “ ”  。          。

upload_limit_rate

         ,0     

upload_max_output_body_len

       body  ,   file        memory,0     

upload_tame_array

             

    

        :/nginx-upload,             

       ,nginx         ,        location upload,        /nginx-upload,      rewrite           。

               ,        name,content_type, path, md5, size, submit  description

파일 을 업로드 할 때 action = "/ upload? X - Progress - ID = FmN6gTEshAHccUvR" 중 X - Progress - ID 는 유일한 id 여야 합 니 다. 업로드 할 때 진 도 를 가 져 오 는 id 가 업로드 진 도 를 가 져 오 려 면 / procgress 에 get 요청 / proccess 를 보 내야 합 니까? X - Progress - ID = FmN6gTEshAHccUvR 을 사용 하면 위 에서 전 달 된 진 도 를 얻 을 수 있 습 니 다.

좋은 웹페이지 즐겨찾기