The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Upload больших файлов средствами HTTP"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [ Отслеживать ]

"Upload больших файлов средствами HTTP"  +/
Сообщение от vasya_pupkin on 22-Сен-09, 17:28 
Здравствуйте. Есть у меня web-сервер, на котором установлен:
frontend - nginx
backend - Apache 1.3.41 + mod_php
Необходимо организовать загрузку файлов размером 1Гб средствами HTTP. Писать приложение на уровне mod_php нерационально по одной простой причине, что Apache ляжет при большом количестве HTTP-запросов и их обработке. Соответственно вариант один: реализовать загрузку на уровне nginx и передавать Apache HTTP-сообщение с информацией о загруженном файле.
Существует даже модуль nginx-upload-module, всё бы хорошо, но проблема усложняется при внедрении аутентификации на уровне mod_php. Как работает этот модуль? Он получает HTTP-запрос с файлом в теле запроса; вырезает из тела файл, который кладёт во временный каталог; генерит новый HTTP-запрос с информацией о файле, который передаёт на указанный upload_pass бэкенду. А проблема в том, что при такой схеме, когда внедрена аутентификация на уровне mod_php(с использованием механизма сессий), nginx'у придётся аутентифицироваться для того чтобы передать HTTP-запрос Apache'у с информацией о временном файле, чего он не сумеет сделать. Вторая проблема: нельзя ограничить доступ к локации nginx, где указана загрузка файлов, а ограничивать необходимо по данным на базе которых предоставляет доступ к порталу. Соответственно любой желающий может отправить HTTP-запрос на nginx и загрузить файл.
Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Upload больших файлов средствами HTTP"  +/
Сообщение от Pahanivo email(ok) on 22-Сен-09, 18:16 
>[оверквотинг удален]
>аутентификации на уровне mod_php. Как работает этот модуль? Он получает HTTP-запрос
>с файлом в теле запроса; вырезает из тела файл, который кладёт
>во временный каталог; генерит новый HTTP-запрос с информацией о файле, который
>передаёт на указанный upload_pass бэкенду. А проблема в том, что при
>такой схеме, когда внедрена аутентификация на уровне mod_php(с использованием механизма сессий),
>nginx'у придётся аутентифицироваться для того чтобы передать HTTP-запрос Apache'у с информацией
>о временном файле, чего он не сумеет сделать. Вторая проблема: нельзя
>ограничить доступ к локации nginx, где указана загрузка файлов, а ограничивать
>необходимо по данным на базе которых предоставляет доступ к порталу. Соответственно
>любой желающий может отправить HTTP-запрос на nginx и загрузить файл.

а по фтп не проще?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Upload больших файлов средствами HTTP"  +/
Сообщение от vasya_pupkin on 22-Сен-09, 18:24 
>[оверквотинг удален]
>>во временный каталог; генерит новый HTTP-запрос с информацией о файле, который
>>передаёт на указанный upload_pass бэкенду. А проблема в том, что при
>>такой схеме, когда внедрена аутентификация на уровне mod_php(с использованием механизма сессий),
>>nginx'у придётся аутентифицироваться для того чтобы передать HTTP-запрос Apache'у с информацией
>>о временном файле, чего он не сумеет сделать. Вторая проблема: нельзя
>>ограничить доступ к локации nginx, где указана загрузка файлов, а ограничивать
>>необходимо по данным на базе которых предоставляет доступ к порталу. Соответственно
>>любой желающий может отправить HTTP-запрос на nginx и загрузить файл.
>
>а по фтп не проще?

Ну вы на youtube по ftp загружаете файл?
У меня видеохостинг для небольшого портала.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Upload больших файлов средствами HTTP"  +/
Сообщение от Pahanivo email(ok) on 23-Сен-09, 07:01 
>[оверквотинг удален]
>>>nginx'у придётся аутентифицироваться для того чтобы передать HTTP-запрос Apache'у с информацией
>>>о временном файле, чего он не сумеет сделать. Вторая проблема: нельзя
>>>ограничить доступ к локации nginx, где указана загрузка файлов, а ограничивать
>>>необходимо по данным на базе которых предоставляет доступ к порталу. Соответственно
>>>любой желающий может отправить HTTP-запрос на nginx и загрузить файл.
>>
>>а по фтп не проще?
>
>Ну вы на youtube по ftp загружаете файл?
>У меня видеохостинг для небольшого портала.

вы на ютубе видели файлы такова размера?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Upload больших файлов средствами HTTP"  +/
Сообщение от Slavaz (ok) on 22-Сен-09, 19:17 
Как вариант - аплоадить ajax'ом, можно ещё и прогрессбарчик рисовать. У Гугля можно идею подсмотреть (да и, думаю, примеров помимо навалом).

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Upload больших файлов средствами HTTP"  +/
Сообщение от vasya_pupkin on 23-Сен-09, 11:53 
>[оверквотинг удален]
>>>>ограничить доступ к локации nginx, где указана загрузка файлов, а ограничивать
>>>>необходимо по данным на базе которых предоставляет доступ к порталу. Соответственно
>>>>любой желающий может отправить HTTP-запрос на nginx и загрузить файл.
>>>
>>>а по фтп не проще?
>>
>>Ну вы на youtube по ftp загружаете файл?
>>У меня видеохостинг для небольшого портала.
>
>вы на ютубе видели файлы такова размера?

500Мб, если быть точным лимит загрузки будет

>Как вариант - аплоадить ajax'ом, можно ещё и прогрессбарчик рисовать. У Гугля
>можно идею подсмотреть (да и, думаю, примеров помимо навалом).

Вариант, но это не решает проблему нагрузки на backend, в моём случае Apache. У google свой мультиплексорный web-сервер скорее всего и вопрос нагрузки на backend у них не встаёт.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру