Есть два Инет-провайдера. которые "отваливаются" с непредсказуемой периодичностью. Соответственно, у сервера есть два IP (от двух инет провайдеров), между которыми приходится переключаться для поддержания сайта (с сервера идет подгрузка данных).
Задача - проверить, какое соединение активно. Желательно побыстрее... Что пробовал: создал файл на сервере и проверяю по какому запросу (через какой IP) он доступен. Но...
is_readable, file_exists
- ложь при активном соединении
fopen, file_get_contents
- соответствуют ситуации, но "крутятся" довольно долго
get_headers
- иногда не срабатывает (не дает заголовки, хотя файл открывается или отдается)
Вопросы: Как лучше всего проверить активность соединения? Логичный ли путь я избрал? Может, идея читать файл не лучшая, а стоит попробовать коннектиться к БД?
"fopen, file_get_contents" - соответствуют ситуации, но "крутятся" довольно долго.
И, тем не менее, самый надёжный способ проверить, доступен ли сервер по определённому IP-адресу - это попробовать соединиться. Сетевое соединение это долго в любом случае (если только не с гарантированно работающим сервером в одном дата-центре), поэтому имеет смысл эту проверку делать как-то асинхронно и регулярно. Например по крону запускать скрипт, который будет проверять соединение и записывать IP-адрес в простой файл. Так что когда появляется необходимость воспользоваться соединением, уже известно по какому адресу нужно обращаться - считать его из файла.
Вообще, похоже вам нужно посмотреть в сторону какого-то load-balancer'а (LB). Например HAProxy. Принцип такой, что этот LB слушает локальный порт, который и будет использовать ваш сайт. А LB уже автоматически направляет запрос на нужный внешний ресурс, автоматически мониторя, какой из них доступен.
Вот пара описаний настройки HAProxy для такой конфигурации (на английском; если в английском не сильны, можно поискать аналогичное по-русски): https://www.haproxy.com/blog/failover-and-worst-case-management-with-haproxy/ https://serverfault.com/questions/473445/haproxy-switch-only-in-case-of-server-down
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как к элементу массива UserName, присвоить данные с input type="text"?
Ребят, приветствуюНа сайте случалась ситуация, что один из пользователей смог обойти проверку и украсть средства
Дан список студентов, необходимо сделать выборку и вывести список студентов которые проживают в общежитии и получают стипендиюКак искать...
Есть массив, который очень быстро пополняется значениями и из него удаляются все значенияМне нужно что бы в определенный момент(я сам знаю...