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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "вечный" процесс 
:(
    Опции темы
klyxa
Дата 28.7.2008, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 13.8.2006

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



привет. у меня следущая ситуация..
есть сервер А(интерфейс), он получает запросы от клиентов(пользователей). далее,предположим, ему необходимо сделать выборку из базы расположенной на сервере Б.запрос передается скрипту,навешенному на базу,на сервере Б.
у меня вопрос-можно ли сделать,чтобы процесс на сервере Б постоянно выполнялся? ну т.е. я пропишу set_time_limit(0);, а не обрубит ли сам сервер процесс?
т.е. если грохнеца скрипт на сервере Б..то.хана..)
PM MAIL   Вверх
WolfON
Дата 28.7.2008, 16:31 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 604
Регистрация: 19.7.2004

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



ага и для каждого нового обращения у вас будет висеть в памяти еще один бесконечный скрипт, пока не кончится память и не упадет апач
PM MAIL ICQ   Вверх
skyboy
Дата 28.7.2008, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(klyxa @  28.7.2008,  15:12 Найти цитируемый пост)
а не обрубит ли сам сервер процесс?

вполне возможно. даже если по соображениям безопасности set_time_limit прокатит, то уж превышение лимита памяти, вполне вероятное при малюсенькой утечке, но особо длительном выполнении, сервер "не простит".
Цитата(klyxa @  28.7.2008,  15:12 Найти цитируемый пост)
ему необходимо сделать выборку из базы расположенной на сервере Б.запрос передается скрипту,навешенному на базу,на сервере Б.

ну. скрипт А обращается к скрипту Б на другом сервере, тем самым инициируя его выполнение. скрипт А по отношению к скрипту Б - такой же клиент, как какой-то браузер в отношении скрипта А. категорически не понимаю, зачем тебе "вечный цикл скрипта Б". скрипт А же не закольцован! Вполне себе запускается только при обращении клиента...
Цитата(klyxa @  28.7.2008,  15:12 Найти цитируемый пост)
чтобы процесс на сервере Б постоянно выполнялся?

гарантировано от сбоев - т.е. чтоб процесс выполнялся даже тогда, когда сервер упал - нельзя. но в любом случае, исполняемый файл-демон-сервер, запускаемый под (Fast)CGI более стабилен, потому как зависит от меньшего количества параметров. Зачем тебе в данном случае скрипт, исполняемый РНР, который запускается из-под Apache или другого НТТР-сервера - я не понимаю.
PM MAIL   Вверх
klyxa
Дата 28.7.2008, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 13.8.2006

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



мне надо скрыть существование сервера Б и сделать безопасным передачу данных А-Б. вобще, насчет "скрыть существование" таким способом это какбы сказать пожелание заказчика..
Цитата

ага и для каждого нового обращения у вас будет висеть в памяти еще один бесконечный скрипт, пока не кончится память и не упадет апач

Цитата

даже если по соображениям безопасности set_time_limit прокатит, то уж превышение лимита памяти, вполне вероятное при малюсенькой утечке, но особо длительном выполнении, сервер "не простит".

согласен.

мне кажется,что наиболее оптимальным будет установка ssl соединения  с сервером Б. передача непосредственно запросов и получие ответов, без интерфейса на сервере Б..?
http://dev.mysql.com/doc/refman/5.0/en/sec...onnections.html
ээ,что скажете?)
PM MAIL   Вверх
Mal Hack
Дата 28.7.2008, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

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



Есть два варианта.
1. Нормальная реализация на ПХП, без циклов и т.п. Тут либо шифровать, либо SSL. Шифровать - в данном случае достаточно, хотя надо более детально задачу смотреть.
2. Пишите демон на С++ например или Перле. Тогда проблем не будет.

Цитата(skyboy @  28.7.2008,  17:31 Найти цитируемый пост)
вполне возможно.

Будет 100%. Зависит от настроек веб-сервера.
PM ICQ   Вверх
skyboy
Дата 28.7.2008, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(klyxa @  28.7.2008,  15:53 Найти цитируемый пост)
мне надо скрыть существование сервера Б

от клиента, обратившегося к А, существование Б и так незаметно. Если у тебя не редирект на сервер Б, конечно.
Цитата(klyxa @  28.7.2008,  15:53 Найти цитируемый пост)
передача непосредственно запросов и получие ответов, без интерфейса на сервере Б..?

в любом случае интерфейса нету. в одном случае, браузер парсит полученный HTML и строит "внешний вид". в другом случае, сервер А получает от сервера Б HTML(xml?) и ничего не "строит", а строит логику на основании полученных данных. В любом случае, скрипту на сервере Б нет нужды входить в "вечный цикл". От тебя, кстати, аргументации вечному зацикливанию так и не увидел.
Цитата(klyxa @  28.7.2008,  15:53 Найти цитируемый пост)
и сделать безопасным передачу данных А-Б

обезопасить от чего? впрочем, если про SSL сам заговорил, то, пожалуй, в подробности вдаваться и не буду. Хотя общение между "своими" двумя серверами можно и чем попроще шифровать...
PM MAIL   Вверх
sTa1kEr
Дата 28.7.2008, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


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

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



Цитата(klyxa @  28.7.2008,  17:12 Найти цитируемый пост)
ну т.е. я пропишу set_time_limit(0);, а не обрубит ли сам сервер процесс?

Помимо таймаута PHP, есть так же таймаут apache. Однако скрипту запущенному отдельным интерпретатором не что не помешает работать сколько угодно долго.

Цитата(klyxa @  28.7.2008,  17:53 Найти цитируемый пост)
мне надо скрыть существование сервера Б и сделать безопасным передачу данных А-Б. вобще, насчет "скрыть существование" таким способом это какбы сказать пожелание заказчика..

Я правильно понял, что вы хотите скрыть сам факт наличия apache на сервере Б? Тогда проще всего просто повесить apache на другой порт, отличный от 80.
PM MAIL   Вверх
klyxa
Дата 29.7.2008, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 13.8.2006

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



Цитата

От тебя, кстати, аргументации вечному зацикливанию так и не увидел.

да я просто отказался от этой идеи..и решил промолчать..) сорь еси чо)
Цитата

обезопасить от чего?

ну я уже могу перехватить трафик,поэтому разумно будет шифровать)
Цитата

отя общение между "своими" двумя серверами можно и чем попроще шифровать... 

а подскажи как именно, ssl не подарок,конечно.
Цитата

Помимо таймаута PHP, есть так же таймаут apache. Однако скрипту запущенному отдельным интерпретатором не что не помешает работать сколько угодно долго.

да не..идея плохая. по сути..если ломается сервак А, то узнаются настройки доступа к Б и все ssl и пр. идут лесом.
Цитата

Я правильно понял, что вы хотите скрыть сам факт наличия apache на сервере Б? Тогда проще всего просто повесить apache на другой порт, отличный от 80.

хмм..ну я об этом не думал,но идейка то хороша..
PM MAIL   Вверх
Mal Hack
Дата 29.7.2008, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

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



Цитата(klyxa @  29.7.2008,  01:25 Найти цитируемый пост)
а подскажи как именно, ssl не подарок,конечно.

Любой алгоритм шифрования доступный в PHP, но надо шифровать с ключом, который должны знать оба сервера.
PM ICQ   Вверх
klyxa
Дата 29.7.2008, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 13.8.2006

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



а вот 2 ключа..известных серверу(ам)..т.е...шифрование на php. я предположу,что и дешифровка на php т.е. уже образуется интерфейс вокруг базы..) или я не знаю всех тонкостей?если так, то дайте плиз,что почитать.
PM MAIL   Вверх
Mal Hack
Дата 29.7.2008, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

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



Цитата(klyxa @  29.7.2008,  15:02 Найти цитируемый пост)
а вот 2 ключа..известных серверу(ам)..т.е...шифрование на php. я предположу,что и дешифровка на php т.е. уже образуется интерфейс вокруг базы..) или я не знаю всех тонкостей?если так, то дайте плиз,что почитать. 

Принцип такой. То, что вы хочеше отправить на удаленный сервер - шифруете, с ключом.  На удаленном сервере дешифровываете.
В вашем случае - можете передавать SQL запрос таким образом, в качестве строки, а в начало вставить подстроку вида "AAA#", чтобы можно было удостовериться, что расшифровали верно. Вырезаем эту часть, а оставшуюся (SQL запрос) отправляем на выполнение.

http://ru.php.net/manual/ru/book.mcrypt.php - шифрование/дешифрование
http://ru.php.net/manual/ru/book.mhash.php - тоже гляньте
http://ru.php.net/manual/ru/book.openssl.php - OpenSSL  на крайний случай
PM ICQ   Вверх
klyxa
Дата 29.7.2008, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 13.8.2006

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



спасибо

ууу. юбилейный пост..)


Это сообщение отредактировал(а) klyxa - 29.7.2008, 18:01
PM MAIL   Вверх
Resha
Дата 22.10.2008, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 14.3.2008

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



Цитата(sTa1kEr @ 28.7.2008,  22:02)
Цитата(klyxa @  28.7.2008,  17:53 Найти цитируемый пост)
мне надо скрыть существование сервера Б и сделать безопасным передачу данных А-Б. вобще, насчет "скрыть существование" таким способом это какбы сказать пожелание заказчика..

Я правильно понял, что вы хотите скрыть сам факт наличия apache на сервере Б? Тогда проще всего просто повесить apache на другой порт, отличный от 80.

Или сделать ответ 404 для любых чуваков, у которых IP не является IP сервера A smile

А лучше все вместе.

При этом еще и авторизацию повесить.

Потом шифрование (желательно по известному обоим ключу и еще и времени, когда был сделан запрос сервером А), из параметров проверки безопасности передавать только ключ и время запроса. Сервер Б смотрит, чтобы время запроса отличалось не более чем, предположим, на 1 минуту, потом сверяет какие-нибудь sha1 по ключу и времени запроса. Если время больше 1 минуты - выдает 404. Смысл передачи времени, думаю, понятен - если кто-то затырит шифрованный ключ, то через минуту он станет уже невалидным smile

От серверов требуется синхронное время (с разницей не более чем в 10-15 секунд) и общий ключ для шифрования.



Вообще, тоже не понимаю, зачем нужен именно демон. По-моему, мы говорим о RESTе или веб-сервисах smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

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


 




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


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

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