centerOS 6.5 nginx 설치 및 nginx - upload - module 정지점 전송 모듈 추가

7891 단어 nigix 서버
첫 번 째 단계: nginx: 1 을 설치 하고 pcre 와 openssl 을 설치 하지 않 으 면 먼저 설치 해 야 합 니 다.
  yum -y install pcre*
  yum -y install openssl* 

2. nginx - 1.7.8 을 다운로드 합 니 다. 예 를 들 어 제 nginx 는 / tmp 폴 더 에 다운로드 합 니 다.
    wget http://nginx.org/download/nginx-1.7.8.tar.gz

3. 압축 풀기 컴 파일 설치: / tmp 폴 더 에 들 어가 서 압축 풀기 nginx:
   tar -zxvf nginx-1.7.8.tar.gz

압축 해제 에 들 어간 nginx - 1.7.8 폴 더: 컴 파일 설치:
     :cd nginx-1.7.8            :

./configure  
make
make install

(      nginx   /usr/local    ,          ./configure --prefix=path)

4. 설치 가 완료 되면 nginx 를 다시 시작 합 니 다. (nginx 의 기본 포트 는 80 입 니 다)
/usr/local/nginx/sbin/nginx -s reload
         :
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
       :
 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

5. 방화벽 을 닫 거나 방화벽 규칙 을 추가 합 니 다. A 방화벽 을 닫 습 니 다.
service iptables stop

B 또는 방화벽 규칙 추가:
vi /etc/sysconfig/iptables
       

        80-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

      :
service iptables restart

두 번 째 단 계 는 nginx - upload - module 모듈 1 을 추가 하고 다운로드 모듈 을 / tmp 에 다운로드 합 니 다.
cd /tmp
wget https://codeload.github.com/vkholodkov/nginx-upload-module/zip/2.2
unzip 2.2

2, 설치 모듈:
   nginx        ,      nginx       ,/tmp/nginx-1.7.8         :

.configure --add-module=/tmp/nginx-upload-module-2.2/

make //  ,       ,   make,    make install        。

3. nginx 설정 파일 (/ usr / local / nginx / conf 경로 에서) 을 설정 하고 다음 규칙 을 추가 합 니 다.
server {
[...]
        location /resumable_upload {
                #        
                upload_resumable on; 
                #        (    )
                upload_state_store /usr/local/nginx/upload_temp ;
                #      (    )
                upload_store /usr/local/nginx/upload_temp;
                upload_set_form_field $upload_field_name.path "$upload_tmp_path";
        }
[...]
}

설정 이 끝 난 후 nginx 를 다시 시작 해 야 합 니 다.
3, 테스트: 1, 로 그 를 열 면 업로드 상황 을 볼 수 있 습 니 다:
   /usr/local/nginx/logs      access.log error.log:
               :
       access.log:   tail -f access.log
       error.log:    tail -f error.log

2. 예시 로 올 린 python 파일 편집 하기;ptyhon 소스 코드:
#!/usr/bin/python
# -*- coding: utf-8 -*- 


import os.path
import requests
import hashlib

#        
FILE_UPLOAD = "/tmp/test"
#       
UPLOAD_URL = "http://localhost:80/resumable_upload"


def upload(fp, file_pos, size, file_size):
    session_id = get_session_id()
    fp.seek(file_pos)
    payload = fp.read(size)
    content_range = "bytes {file_pos}-{pos_end}/{file_size}".format(file_pos=file_pos,
                    pos_end=file_pos+size-1,file_size=file_size)
    headers = {'Content-Disposition': 'attachment; filename="big.TXT"','Content-Type': 'application/octet-stream',
                'X-Content-Range':content_range,'Session-ID': session_id,'Content-Length':str(size)}
    res = requests.post(UPLOAD_URL, data=payload, headers=headers)
    print(res.text)


#      hash  session id
def get_session_id():
    m = hashlib.md5()
    file_name = os.path.basename(FILE_UPLOAD)
    m.update(file_name)
    return m.hexdigest()

def main():

    file_pos = 0

    #           
    file_s = 8

    file_size = os.path.getsize(FILE_UPLOAD)
    fp = open(FILE_UPLOAD,"r")

    while True:
        if file_pos + file_s>= file_size:
            upload(fp, file_pos, file_size - file_pos, file_size)
            fp.close()
            break
        else:
            upload(fp, file_pos, file_s, file_size)
            file_pos = file_pos + file_s

if __name__ == "__main__":
    main()

python 파일 을 실행 하면 로그 인쇄 결 과 를 볼 수 있 고 업로드 폴 더 에서 업로드 한 파일 을 찾 을 수 있 습 니 다.참고 내용:
http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=29791971&id=4702007 https://www.centos.bz/2015/09/nginx-upload-module-multipart-form-data-resumable/

좋은 웹페이지 즐겨찾기