Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Один сайт на нескольких серверах 
:(
    Опции темы
abalich
Дата 26.7.2012, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 26.2.2007
Где: Воронеж

Репутация: нет
Всего: нет



Добрый ночи.

Пишу проект на PHP + MYSQL.  Передо мной стоит такая задача: есть один сервер (назовем его Фронт - т.е. на нем будет веб-морда самого сайта. для посетителей) на котором php+mysql (база) и есть сервера на которых будут храниться файлы (назовем эти сервера Back - их кол-во не ограничено). Закачка файлов на сервера Back происходит по средствам веб морды на Front сервере, а так же и удаление этих файлов тоже. Доступ к файлам на серверах должны иметь только определенные пользователи (ну т.е. те кто их закачал)

Собственно вопросы:

1) Каким методом мне закачивать файлы на сервера Back. Сначала должна происходить закачка на сервер Front, а потом из временной папки на сервер Back. Как мне при помощи ПХП загрузить файлик на другой сервер. Подходит ли для этого FTP протокол, или есть более "правильный инструмент" для перекачки файла посредствам php На другой сервак.
2) Как мне ограничить доступ к файлу на серверах back ? Как это сделать на одном сервер я знаю. Я брал у узера установленную сессию, пробивал по SQL базе  и уаля понимал, если доступ к файлу или нет. Но в случае с другим сервером - там жу сессия будет другая... и соответственно всегда будет "БОЛТ"

И вообще я правильно мыслю, именно так решаются проекты, объем данных которых явно превышает возможности одного сервера.

p.s. надеюсь я правильно донес суть вопроса.

Спасибо большое заранее!


--------------------
Мой дядя самых честных "грабил"...
PM MAIL WWW   Вверх
Sentox
Дата 27.7.2012, 01:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



Это называется распределённая система.
В вашем случае центральный сервер является управляющим и создаёт связи с файловыми серверами через протоколы.
Это довольно сложная и обширная тема, лучше литературу почитать по распределённым архитектурам.

Цитата

Как мне при помощи ПХП загрузить файлик на другой сервер. Подходит ли для этого FTP протокол, или есть более "правильный инструмент" для перекачки файла посредствам php На другой сервак.


CURL

А вообще если познания не сильны в таких вещах долго придётся делать, особенно если неограниченное количество файловых серверов. Эту всё архитектуру как то нужно будет синхронизировать.

Это сообщение отредактировал(а) Sentox - 27.7.2012, 01:14
PM MAIL   Вверх
SneG0K
Дата 27.7.2012, 01:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



В базе можешь хранить файл и ID сервера, на котором он находится. Загружать можешь прямиком на сторадж (Nginx + uploadfile). Выдавать так-же. На фронтенде проверяешь на каком сервере файл, редиректишь на сторадж + там еще на всяк случай проверяй принадлежность файла пользователю (nginx + php) (либо сделай названия файлов очень длинными, что-бы подобрать было сложно).

Profit?

Добавлено через 38 секунд
Цитата(Sentox @  27.7.2012,  00:11 Найти цитируемый пост)
CURL

И зачем траффик лишний раз гонять туда-сюда?
PM WWW Skype   Вверх
Sentox
Дата 27.7.2012, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: 7
Всего: 7



Цитата(SneG0K @ 27.7.2012,  01:19)
Добавлено @ 01:20
Цитата(Sentox @  27.7.2012,  00:11 Найти цитируемый пост)
CURL

И зачем траффик лишний раз гонять туда-сюда?

Я уже как то доказывал что централизация управлением более рекомендуема чем транспортный шлюз с клиента от web-обозревателя.
Во первых централизация управлением безопасности. 
Во вторых безопасность от сбоев, то есть
Цитата

На фронтенде проверяешь на каком сервере файл,

даст сбой если был отправлен файл на файловый сервер, а запрос на управляющий сервер для сохранения параметров не произошёл по какой либо причине (сбой сервера, сбой клиента-отрубило на компе свет,браузер ....), сбой сервера БД и т.д.). То есть отправка файла и сохранение параметров должны быть упакованы в "транзакцию" при которой если был сбой на одном из потоков транзакция анулируется, в случае транспорта от клиента это очень сложно и неудобно реализовать. Так же усложняется ситуация если файлы идентифицированы для конкретного пользователя, что само по себе просто кричит переправь меня через центральный сервер, так как инфа по пользователю только на нём, а вынесение параметров пользователя на клиент для привязки файла к пользователю это плохая практика.
В третьих файловые сервера будут заниматься не "своим" делом - хранением, так как будут содержать расширенную логику  по обработке файлов, как мимнимум слой безопасности,  Front Controller для обработки запросов (согласитесь будет хотя бы простейшая логика распределения файлов по критериям, что потянет за собой расслоение по предметным областям). Хотя на них (файловых серверах) должны быть максимум обработчик протокола между центральным сервером и файловым сервером хотя бы наподобие RPC или JSON и слой шлюза к БД и всё.

В результате всё выше перечисленное перевешивает 
Цитата

И зачем траффик лишний раз гонять туда-сюда?


Это сообщение отредактировал(а) Sentox - 27.7.2012, 02:46
PM MAIL   Вверх
Fortop
Дата 27.7.2012, 02:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Рекомендую просмотреть ответы пользователей на этом форуме Ипатьев, Feldmarschall, GeneralElectric.
Там были рекомендации как работать с такими вещами.



--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
abalich
Дата 27.7.2012, 03:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 26.2.2007
Где: Воронеж

Репутация: нет
Всего: нет



Так, ну в этой области я совсем не силен конечно.
Там на файловом сервере будет еще обработчик этого самого файла - точнее если быть то imagick
Файлы будут большого размеры, примерно 20 МБ каждый, каждый юзер работает с 10-20 файлами сразу, и таких юзеров много. очень много.


Sentox, CURL как я понял более правильно будет использовать. Но как проверить авторизированность пользователся так сказать)?

Добавлено через 6 минут и 11 секунд
Ну если более точно говорить, то я пользователю даю просто тег <img src="some server/img.php?id=2"
и вот на том стороннем сервере идет обработка картинки, но её показывать только тому кто её автор, авторство храниться на первом сервере. как то так.


--------------------
Мой дядя самых честных "грабил"...
PM MAIL WWW   Вверх
skyboy
Дата 27.7.2012, 09:41 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



а что не так с решением монтировать удаленные сервера в локальную файловую систему?
обрабатывать imagemagik'ом, конечно ж, лучше на местах, без перетягивания данных туда-обратно(поставить какой-то менеджер очереди на каждый сервак и вызывать его через тот же curl), но процесс заливки и стягивания файла уж точно никакого оверхеда не вызовет. плюс для контроля доступа можно будет без затей использовать x-send-file 
PM MAIL   Вверх
Fortop
Дата 27.7.2012, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



skyboy, не мешай им smile они хотят курлом smile


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
abalich
Дата 27.7.2012, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 26.2.2007
Где: Воронеж

Репутация: нет
Всего: нет



skyboy, 
Цитата

а что не так с решением монтировать удаленные сервера в локальную файловую систему?
обрабатывать imagemagik'ом, конечно ж, лучше на местах, без перетягивания данных туда-обратно(поставить какой-то менеджер очереди на каждый сервак и вызывать его через тот же curl), но процесс заливки и стягивания файла уж точно никакого оверхеда не вызовет. плюс для контроля доступа можно будет без затей использовать x-send-file  


Если не сложно то можешь более подробно на пальцах объяснить.



Fortop, я пока ни как ни хочу))))) потому что пока вообще не одуплил принцип работы.  smile 


--------------------
Мой дядя самых честных "грабил"...
PM MAIL WWW   Вверх
abalich
Дата 27.7.2012, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 26.2.2007
Где: Воронеж

Репутация: нет
Всего: нет



И еще стоит ли в таком случае как то распределять нагрузки на MySQL базу. В данный момент у меня при открытии одной страницы примерно 35 SQL запросов. Много ли это ? Планируется посещаемость в 3 000 в сутки.


--------------------
Мой дядя самых честных "грабил"...
PM MAIL WWW   Вверх
abalich
Дата 29.7.2012, 04:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 434
Регистрация: 26.2.2007
Где: Воронеж

Репутация: нет
Всего: нет



Решил свою проблему. Спасибо. будет позже время напишу как)


--------------------
Мой дядя самых честных "грабил"...
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0541 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.