Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re[2]: X-Accel-Redirect на другой порт
Здравствуйте, 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@xxxxxx
|