small issue about Nginx upload module

Roman Vasilyev roman.vasilyev на yousendit.com
Вт Сен 27 16:33:37 UTC 2011


просто в тарболле который качается по дефолту нету этой команды 
(upload_add_header)

On 09/26/2011 10:56 PM, Dmitry Dedukhin wrote:
>
> По-моему 2.2 как раз и является текущей веткой.
>
> 27.09.2011 4:20, Roman Vasilyev пишет:
>> Спасиб оогромое, все проблемы решились.
>> Может быть эту версию включить в текущий бранч?
>> On 09/23/2011 09:24 PM, Дмитрий Дедюхин wrote:
>>> Добрый день.
>>>
>>> Модуль Валерия слишком полезен, поэтому все уже сделано давным давно.
>>> Смотрите здесь 
>>> https://github.com/vkholodkov/nginx-upload-module/commits/2.2 
>>> коммиты от 14 декабря 2010 года и диррективу upload_add_header, 
>>> предназначенную именно для этих целей.
>>>
>>> 24 сентября 2011, 03:23 от Roman 
>>> Vasilyev<roman.vasilyev на yousendit.com>:
>>>> Наткнулся на достаточно неприятное поведение модуля.
>>>>
>>>> При upload выдается нотификация из разряда:
>>>> HTTP/1.1 200 OK
>>>> Server: nginx/1.1.4
>>>> Content-Type: text/html
>>>> Transfer-Encoding: chunked
>>>> Connection: keep-alive
>>>>
>>>> в которой невозможно упавлять заголовками.
>>>> тоесть Access-Control-Allow-Origin * выставить невозможно.
>>>> Поскольку HTML5 работает crossdomain то без этого заголовка все 
>>>> идет прахом.
>>>> Прилагаю пример конфига
>>>>
>>>> location / {
>>>> if ($request_method = 'OPTIONS') {
>>>> add_header Access-Control-Allow-Origin *;
>>>> add_header Access-Control-Allow-Methods 'POST, OPTIONS';
>>>> add_header Access-Control-Allow-Headers
>>>> 'X-Content-Range,Session-ID,Content-Type,Content-Disposition';
>>>> return 200;
>>>> }
>>>> add_header Access-Control-Allow-Origin *;
>>>>
>>>> upload_resumable on;
>>>> upload_pass /uwsgi/blah;
>>>> upload_store /usr/share/nginx/;
>>>> }
>>>>
>>>> захардкодил пока этот заголовок прямо в ответ сервера, хотя конечно 
>>>> это
>>>> не дело, на всякий случай вкладываю патч того безобразия что я 
>>>> сделал, и
>>>> всетаки хотелось бы получить более верное направление как это лучше 
>>>> решить.
>>>> =============================================
>>>> [root на pocsto01 nginx-1.1.4]# cat 123.patch
>>>> diff -Naur nginx_upload_module-2.2.0/ngx_http_upload_module.c
>>>> nginx_upload_module-2.2.0.new/ngx_http_upload_module.c
>>>> --- nginx_upload_module-2.2.0/ngx_http_upload_module.c 2010-09-27
>>>> 11:54:15.000000000 -0700
>>>> +++ nginx_upload_module-2.2.0.new/ngx_http_upload_module.c 2011-09-23
>>>> 16:03:20.000000000 -0700
>>>> @@ -771,6 +771,13 @@
>>>> ngx_str_t dummy = ngx_string("<ngx_upload_module_dummy>");
>>>> ngx_table_elt_t *h;
>>>>
>>>> + h = ngx_list_push(&r->headers_out.headers);
>>>> + if (h == NULL) {
>>>> + return NGX_HTTP_INTERNAL_SERVER_ERROR;
>>>> + }
>>>> + h->hash = 1;
>>>> + ngx_str_set(&h->key, "Access-Control-Allow-Origin");
>>>> + ngx_str_set(&h->value, "*");
>>>> if(ctx->prevent_output) {
>>>> r->headers_out.status = NGX_HTTP_CREATED;
>>>>
>>>> _______________________________________________
>>>> nginx-ru mailing list
>>>> nginx-ru на nginx.org
>>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>> _______________________________________________
>>> nginx-ru mailing list
>>> nginx-ru на nginx.org
>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
>>
>



Подробная информация о списке рассылки nginx-ru