Re[2]: X-Accel-Redirect на другой порт

Pavel V. pavel2000 at ngs.ru
Wed Nov 18 22:31:04 MSK 2009


Здравствуйте, Bokhan.

Вы писали 19 ноября 2009 г., 1:01:03:

Вы шутите ? Зря, рассылка попадает в архивы, которые потом гуглятся, и
используются лицами, конфигурирующими веб-сервера. А потом они пишут в
рассылки...

Представим себе, что переподключение браузера к другому порту не
явзяется обязательным. В чем же тогда преимущество между "отдать файл
из location /media/secret/ сервера на порту 80   с диска сразу, по
сравнению с вашим вариантом "отдать с диска, погоняв данные внутри
веб-сервера, проксируя самого себя" ?

Для клиента разницы никакой, зато имеем лишнюю передачу данных внутри
веб-сервера. Еще и proxy_buffering оставили включенным.

> Так вам подойдет? Или вам надо, чтобы браузер клиента обязательно подсоединялся
> к другому порту? Если так, то "секретность" ссылки теряется.

> server {
>      listen localhost:80;

>      location /media/ {
>         [...]
>      }

>      location /media/secret/ {
>         [...]
>         proxy_pass http://localhost:8080
>         internal;
> #       proxy_buffering off;    
>      }
> }

> server {
>      listen localhost:8080;
>      location /media/secret/ {
>      [...]
>      allow 127.0.0.1;
>      deny all;
>      }
> }

> Michael Borisov пишет:
>> В Срд, 18/11/2009 в 12:31 +0600, Artem Bokhan пишет:
>> 
>>> Сделайте x-accel-redirect на location, в котором формируется редирект
>>>
>>> location /secret {
>>>             add_header Location "http://$somethingyouneed";
>>>             return 302;
>>> #         internal;
>>> }
>> 
>> 
>> Можно подробнее?
>> Как дело обстоит в моем случае: 
>> Есть ссылка http://localhost/file/download , где file - id файла. Зайдя
>> по этой ссылке клиент получает заголовки, среди которых есть
>> X-Accel-Redirect, который равен /media/secret/filename - вот его нужно
>> переправить на другой порт, т.е. на
>> http://localhost:8080/media/secret/filename
>> 
>> 
>> Вот пример текущей конфигурации nginx:
>> server {
>>     listen localhost:80;    
>>     location /media/ {
>>         alias /path/to/static/;
>>     }                            
>> }
>> 
>> server {
>>     listen localhost:8080;
>>     location /media/secret/ {
>> internal;
>>         alias /path/to/secret/;
>>     }
>> }
>> 
>> Какой именно тут надо дописать location ?
>> 
>> 





-- 
С уважением,
 Pavel                          mailto:pavel2000 at ngs.ru






More information about the nginx-ru mailing list