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 отправлять информацию частями?

Самое свежее обсуждение.
  • Вопрос задан
  • 817 просмотров
Решения вопроса 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)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы