ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: $1 в post_action



On Tue, 30 May 2006, drmarker wrote:

Отлично, работает, большое спасибо.

При этом $token будет жить только внутри конкретно этого реквеста?

Да.

Я чуть "упростил конфиг" и получилось вот что:

server {
  listen 80 default;

  server_name distrib;

  location / {
      if ($uri ~ '^/([[:xdigit:]]{32})/(.+)$') {
          set $token $1;
          set $file  $2;

          rewrite ^ /cgi-bin/download-start.pl?to=$token&fi=$file last;
      }
  }

  location /cgi-bin/ {
      proxy_pass http://auth:8008/cgi-bin/;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }

  location /files {
      internal;

      root /srv/movdb;

      post_action /download-stop;
  }

  location /download-stop {
      internal;

rewrite ^ /cgi-bin/download-stop.pl?to=$token&bs=$body_bytes_sent last;
  }

}

Все правильно с точки зрения политики партии?

В твоем примере стоит `?` после $body_bytes_sent? Typo?

Нет, http://sysoev.ru/nginx/docs/http/ngx_http_rewrite_module.html#rewrite

Если в строке замены указаны аргументы, то предыдущие аргументы запроса
добавляются после них. Можно отказаться от этого добавления, указав в
конце строки замены знак вопроса:

        rewrite  ^/users/(.*)$  /show?user=$1?  last;


Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.