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服务器传