Просмотр полной версии : Интересует мнение по проблеме
serg-php
21.04.2010, 17:31
Ситуация!
Есть несколько сайтов на пхп на разных хостингах, в одном из сайтов есть общие мускульная база и директория с картинками. Базу и картинки используют все сайты,
причем через мод_рерайт удалось реализовать видимость того, что картинки находятся в базе именно этого сайта.
Все работает, но есть один момент - пользователь регится на одном из сайтом и желает загрузить картинку. Соответственно, картинка должна попасть в общую базу картинок, но эта база то на другом сервере.
Как здесь быть?
Если бы все сайты были на одном хостинге, то это решалось бы через абсолютные пути в скриптах, а так ситуация другая!
^_WhitE_DeMoN_^
21.04.2010, 19:26
Подобный проблем... Хочу реализовать mirror или backup сервер
serg-php
22.04.2010, 14:06
^_WhitE_DeMoN_^,
Что Вариант только фтп?
Ну, когда пользователь грузит файл, ты просто в фоновом режиме отправляй его на третий сервер, хотябы простым curl, или ftp, так будет попоще в некоторых смыслах.
А так, я бы создал что то проде, полноценного mirror-сервера.
//AJAX+jquery помоему может работать со сторонними доменами, так что можно прямо с браузера грузить на третий сервер. Не проверенно, но насколько я помню, такое возможно.
serg-php
22.04.2010, 21:34
когда пользователь грузит файл, ты просто в фоновом режиме отправляй его на третий сервер
А если такой файл уже загружен? Как система поймет это? А если нужно удалить один файл и вместо него добавить другой?
Скажем, так
define('FILE_DIR', 'home/html/files/');
еслибы заменить на
define('FILE_DIR', 'ftp://user:user@123.232.127.34/files/');
Будет ли такая конструкция работать?
Есть два подхода к проблеме.
1.Пользоваться одной базой, если юзер хочет что то загрузить, загружать именно в эту одну базу.
2. Сохранять все там где оно есть, и с некоторой периодичностью сливать все три базы во едино на всех трех серверах.
Оба подохода имеют право на существование. Первый прост в реализации, но не устойчив к пиковой нагрузке. Второй сложнее в плане реализации , но гораздо устойчивее к нагрузке, ибо база существует в трех экземплярах, получается своего рода кластер.
Так же можно постоянно заливать на все три сервера. Это будет уместно если юзеры намного чаще смотрят фотки чем их заливают, ибо в таком случае существенно снизит нагрузку, без потери реалтайма.
Какой способ использовать решать вам.
serg-php
23.04.2010, 00:14
Пользоваться одной базой, если юзер хочет что то загрузить, загружатьименно в эту одну базу
Так об это-то и речь идет!
Выше привел конструкцию!
serg-php
Файлами между серверами лучше обмениваться по http - быстрее. Я бы написал RPC службу принимающую файлы - быстро и надежно.
serg-php
23.04.2010, 15:10
$now,
твой вариант сильно сложен будет для меня!
А не проще ли вызвать пхп-форму с удаленного сервера
поместить ее в
<iframe height="898" allowTransparency="true" frameborder="0" scrolling="yes" style="width:90%;border:none" src="http://123.232.127.34/index.php?page=add"><a href="http://123.232.127.34/index.php?page=add">Загрузка файла</a></iframe>
serg-php
08.05.2010, 15:27
Может ли помочь allow_url_fopen
ReduKToR
08.05.2010, 18:26
Храни изображения в бд) а не в файлах
Доступ к бд как ты говоришь реализован!
serg-php
10.05.2010, 21:31
ReduKToR
Храни изображения в бд) а не в файлах Доступ к бд как ты говоришь реализован!
В базе хранить не есть хорошо!
Тем более, что файлы всерднем метровые!
Это что базу в 5 гигов делать?
ReduKToR
В базе хранить не есть хорошо!
Тем более, что файлы всерднем метровые!
Это что базу в 5 гигов делать?
Ну если с самого начала не продумал такие мелочи, то возможно и в 5г будет база.
Я бы все же в фоне грузил на нужный файл-сервер, при помощи php такое реализуется нетрудно.
serg-php
11.05.2010, 00:35
Я бы все же в фоне грузил на нужный файл-сервер, при помощи php такое реализуется нетрудно.
Не совсем представляю, как это средставами пхп?
Образец бы!
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot