Задать вопрос
woonem
@woonem

Как создать постоянное подключение для туннелирования с помощью php?

Если сервер с серым IP отправит запрос серверу с белым IP, то может ли сервер с белым IP отправлять ответ бесконечно долго, таким образом создав постоянное подключение для туннелирования?

Я пишу туннель на php, нужно оптимизировать вот эту технологию.
Свое решение для оптимизации я изложил выше. Можно ли его реализовать?

Не помешают ли мне тайм-ауты NAS?
Может ли php получать и обрабатывать часть информации? (Так как один ответ сервера длится бесконечно и его, естественно надо обрабатывать частями).
Может ли php отправлять информацию частями? (Подробнее про буферизацию, пожалуйста).

Технология разрабается для хранения результатов индексирования поисковой машины на сервере с серым IP, а доступом к ней через хеш хостинга, так как у хостинга высокая скорость соединения с клиентом, а на сервер не хочется покупать белый ip, так как планируется частое перемещение сервера и каждый раз покупать будет неудобно, так-же планирую иметь не один сервер, а чем с портами возиться, каждый сервер на свой порт вешать, лучше будет написать на php небольшой туннель. Использовать программы для туннелирования не хочется, так как сервера могут быть с разными ОС и вообще это возня. Да и к тому же я пишу фреймворк и его пользователям очень понравится новая функция - это будет одна из его фишек (фреймворк не должен требовать никаких расширений, программ, плагинов и т.д., кроме обработчика php и любого http сервера - это другая фишка).


Все вопросы по теме:

Как с помощью PHP на хостинге с «белым» IP сделать http туннель для подключения к серверу с «серым» IP, который за NAT'ом?
Как любыми способами получить http доступ к серверу с серым IP из интернета?
Есть технология кластеризации. Как её оптимизировать?
Как создать постоянное подключение для туннелирования с помощью php?
Не помешают ли мне тайм-ауты NAS при туннелировании?
Может ли php получать и сразу же обрабатывать часть запроса, не дожидаясь окончания получения запроса?
Может ли php отправлять информацию частями?

Самое свежее обсуждение.
  • Вопрос задан
  • 827 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 1
nonlux
@nonlux
Почитал все вопросы ответы по теме.
По моему в целом проблема высосана из пальца, но сейчас не об этом.

1. Не понятно для кого это делается. Просто для себя или будут пользователи у вашего решения.
Если наберется с N пользователей, то не померет ли ваш белый сервер от постоянной перезагрузки страниц (DDos).

2. аналогично первому только касаемо базы и прочих ресурсов на сервере. Хостинг провайдер не пошлет за постоянной превышение нагрузки?

3 Черный ящик php. Я не могу посоветовать решения не зная, как урезан php на белом хостинге.

4. Ближе к телу. Думаю на ваших серверах все реализована так:
Запрос -> веб сервер (apache, nginx) -> php ( fpm, cgi)

Все они созданы, чтобы сдохнуть ( т.е как у веб сервера так и php есть настройки времени жизни для запроса) и соответственно бесконечных одиночных запросов в этом контексте ( для http) быть не может.

Люди уже давно придумали как это обойти : long pooling, web sockets. Даже придумали php, который не умирает (Reactphp).

Но возможны ли эти решения для вас, зависит от п.п 3 ( см. выше)

5.
Может ли php получать и обрабатывать часть информации? (Так как один ответ сервера длится бесконечно и его, естественно надо обрабатывать частями).
Может ли php отправлять информацию частями? (Поподробнее про буферизацию, пожалуйста).


Извините, ерунда. см п.п.4
Правильным решением будет 100 разных POST отправить с серого к белому серверу. На белом все собрать в кучу.

6. В целом, если вам необходима только выдача данных от серого сервера. То самым простым будет реализация своего static http proxy.
Т.е. серый генерирует уже готовые страницы отдает их белому. А тот их сохраняет и выдает. Если пользователь запросит, то что серый еще не обработал слать его на ... (404)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы