nginx反向代理可以下載,也可以上傳,今天試試上傳文件的方法
- curl上傳參數 -T
編譯安裝nginx,添加模塊--with-http_dav_module模塊
創建上傳文件的臨時目錄
mkdir -p /dev/shm/client_body_temp
chown -R nginx.nginx /dev/shm/client_body_temp
mkdir -p /var/bh/bak/tfiles/
/var/bh/bak/tfiles/
添加nginx location配置
location /tfiles/ {
# 剛剛創建的臨時目錄
client_body_temp_path /dev/shm/client_body_temp 1 2;
# 文件的上傳目錄,nginx服務用戶要有寫的權限
alias /var/bh/bak/tfiles/;
autoindex on;
# 默認是關閉PUT功能的,添加這行開啟
dav_methods PUT;
}
重啟nginx,在客戶端測試
curl -T upload_file http://myserver.com/tfiles/
可以看到服務端目錄/dev/shm/client_body_temp在不斷的增漲,待文件上傳完成后,會移到上傳目錄
FAQ1:
上傳時發生報錯:
<head><title>413 Request Entity Too Large</title></head>
需要給nginx加大緩存包體
proxy_headers_hash_max_size 51200;
proxy_headers_hash_bucket_size 6400;
client_max_body_size 20m;
proxy_buffer_size 10240k; #設置代理服務器(nginx)保存用戶頭信息的緩沖區大小
proxy_buffers 16 10240k; #proxy_buffers緩沖區,網頁平均在32k以下的設置
proxy_busy_buffers_size 20480k; #高負荷下緩沖大小(proxy_buffers*2)
proxy_temp_file_write_size 20480k;#設定緩存文件夾大小,大於這個值,將從upstream服務器傳