server {
listen 443 ssl;
server_name dl.mydomain.cn;
client_max_body_size 80M;
client_body_buffer_size 4M;
access_log /var/log/nginx/dl-mydomain_ssl.log;
error_log /var/log/nginx/dl-mydomain_ssl.err error;
ssl_certificate /etc/letsencrypt/live/mydomain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain/privkey.pem;
ssl_session_timeout 5m;
add_header X-Frame-Options DENY;
ssl_ciphers EECDH+AESGCM:EECDH+AES256:EECDH+AES128:-DHE-RSA-AES256-SHA:-DHE-RSA-AES128-SHA:-DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
root /var/www/files;
location / {
autoindex on;
if ($http_x_auth_token != "secret123") {
return 404;
}
try_files $uri $uri/ =404;
}
location /upload {
if ($http_x_auth_token != "secret456") {
return 404;
}
# 启用WebDAV
dav_methods PUT;
# 存储路径
root /var/www/uploads;
# 权限设置
create_full_put_path on;
dav_access user:rw group:rw all:rw;
# 限制文件大小
client_max_body_size 100M;
}
# 上传完成后的处理(返回成功信息)
location /upload_done {
return 200 "Upload completed! File: $upload_file_name";
}
}
mkdir -p /var/www/uploads
chmod 777 /var/www/uploads # 根据实际情况调整权限
nginx -s reload
文件会上传到 /var/www/uploads/upload下