Если брать пример с сайта, то такая конструкция не записывает в лог
файлы, которые качаются. А только запросы "get /"
То есть сначала открывается в браузере сгенерированный index.html.
Потом скачивается полностью какой-либо файл. По идее должно быть 2
записи. Но есть только одна
Как быть?
55.55.55.55 - - [09/Jul/2005:21:44:17 +0200] "user" "GET /files/
HTTP/1.1" 200 391 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU;
rv:1.7.8) Gecko/20050511 Firefox/1.0.4" "-" "-"
http {
[skip]
log_format download '%addr - - [%time] "%{remote_user}v"
"%request" %status '
'%length "%{Referer}i" "%{User-Agent}i" '
'"%{Range}i" "%{Content-Range}o"';
[skip]
server {
[skip]
location /files/ {
valid_referers none server_names *.server.com/;
if ($invalid_referer) {
return 403; }
root /srv/www/htdocs/web2/html;
autoindex on;
auth_basic "hallo";
auth_basic_user_file /usr/local/nginx/conf/passwd;
access_log /usr/local/nginx/logs/access_web2_files.log download;
}
Судя по той конфигурации, что была в одном из предыдущих писем, файлы,
скорее всего, попадют в location ~* ^.+\.(jpg|jpeg|gif|png|ico|mpg)$:
-----------
location /files/ {
valid_referers none server_names *.virtualserver.com/;
if ($invalid_referer) {
return 403; }
root /srv/www/htdocs/web2/html/files;
autoindex on;
access_log /usr/local/nginx/logs/access_web2_files.log
download;
}
location ~* ^.+\.(jpg|jpeg|gif|png|ico|mpg)$ {
root /srv/www/htdocs/web2/html;
access_log off;
expires 30d;
}
-----------
Порядок обработки location описан здесь:
http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#location
Для того, чтобы после /files/ не проверялись регулярные выражения,
нужно написать так:
location ^~ /files/ {
Игорь Сысоев
http://sysoev.ru