Здравствуйте уважаемые! Наблюдаю странное поведение nginx. В тестовом авторизационном файле луа сказано, что метод PUT запрещён (см листинг ниже). И при этом когда захожу вижу, что сначало nginx разрешает PUT и идет передача файла на WEBDAV и только после завершения передачи файла nginx стартует access_by_lua_file /etc/nginx/lua/auth-dav1.lua и возвращает запрет PUT(передачи файла)... см лог ниже. По факту получается, что я не могу запретить из луа-авторизатора передачу файла? конечно его размещение запрещается... но при этом он качается на сервер и излишне грузит nginx и канал!!! Почему так? Это баг, фича, я глючу или ещё чвото?
------------------------ лог файл BitKinex (кстати FAR-NetDrive ведёт себя анналогично) Resolving host name "dav.example.com" ... Connecting ( dav.example.com => ip: 10.0.0.1, port: 80 ) Connected (10.0.0.1:80) <<< PUT /IMG_20150414_184225.jpg HTTP/1.1 <<< Host: dav.example.com <<< User-Agent: BitKinex/3.2.3 <<< Accept: */* <<< Pragma: no-cache <<< Cache-Control: no-cache <<< Content-Length: 696983 <<< Content-Type: application/octet-stream <<< Translate: f >>> HTTP/1.1 405 Not Allowed >>> Server: nginx/0.8.54 >>> Date: Thu, 16 Apr 2015 08:08:52 GMT >>> Content-Type: text/html >>> Connection: keep-alive >>> Content-Length: 173 Connection closed ----------------------------- Конфиг virt dav.conf server { listen 80; server_name dav.example.com; server_name_in_redirect off; access_log /var/log/nginx/dav-access.log main; resolver 10.255.255.1 [::1]:5353; set $dir /opt/home; set $dir_path $dir; if ($uri ~* ^(.*)([$/].*)$) { set $dir_path $dir$1; } set $home $dir_path; set $sadm_passwd .htpsw; set $user_passwd .uhtpasswd; location / { access_by_lua_file /etc/nginx/lua/auth-dav1.lua; dav_methods PUT DELETE MKCOL COPY MOVE; dav_ext_methods PROPFIND OPTIONS; create_full_put_path on; dav_access user:rw group:rw; client_body_temp_path /opt/itcod-dav.tmp/; client_max_body_size 0; autoindex on; root /opt/home/; } location ~/\.ht { deny all; } } --------------------------------------------------- тестовый листинг луа auth-dav1.lua if ngx.var.request_method == 'PUT' then ngx.exit(405) end PS: так же пробовал ngx.exit(403) ngx.exit(423) - результат не меняется. сначало грузит потом запрещает. Posted at Nginx Forum: http://forum.nginx.org/read.php?21,258069,258069#msg-258069 _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru