small issue about Nginx upload module
Dmitry Dedukhin
dedukhin на mail.ru
Вт Сен 27 05:56:14 UTC 2011
По-моему 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 at 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 at 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 at nginx.org
>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru at nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
>
Подробная информация о списке рассылки nginx-ru