Мы начали сталкиваться с запросами от клиентов о том, что некоторые страницы сайтов или даже целые сайты стали грузиться долго. Сначала было не до конца понятно что происходит и выглядело как “что-то на стороне PHP долго отрабатывает, а в MySQL Sleep висит” и “ну может цикл неоптимизированный какой-то”. После того, как мы провели глубокое профилирование работы PHP на таких страницах – увидели что долго выполняется функция curl_exec
(эта функция является оберткой над cURL в PHP и используется для обращений к внешним сервисам, например, по API).
Ну и конечно же запросы к facebook блокируются, да и аналогичная ситуация наблюдается и с API Instagram и API Twitter, но через раз.
[root@REDACTED ~]# curl -v 'https://graph.facebook.com/'
* About to connect() to graph.facebook.com port 443 (#0)
* Trying 157.240.205.1...
* Connection timed out
* Trying 2a03:2880:f013:0:face:b00c:0:2...
* Failed to connect to 2a03:2880:f013:0:face:b00c:0:2: Network is unreachable
* Failed connect to graph.facebook.com:443; Network is unreachable
* Closing connection 0
curl: (7) Failed to connect to 2a03:2880:f013:0:face:b00c:0:2: Network is unreachable
Что делать прямо здесь и сейчас?
- Выключать модули, которые обращаются к
graph.facebook.com
и другим. Я прекрасно понимаю что некоторые интеграции очень нужны и критичны для бизнес-логикм и аналитики, но тут нужно понять что важнее “работа быстрая сайта” или “функциональность, которая и так отвалилась”. - Составить список модулей с обращениями к третьесторонним сервисам (особенно зарубежным) и держать этот список “под рукой” и на случай новых проблем выключать модули и проверять.
Что делать дальше, елси интеграции нужны?
- Подумать над проксями и VPN для таких сервисов, чтобы заворачивать трафик в обход блокировок прямо на сервере, но для жтого нужен список что нужно обходить
- Мы у нас на хостинге начали тестировать такое решение для частных случаев
- В модулях и интеграциях сделать интеграции с прокси-сервисами
Да, кто-то скажет – ну и ладно, на зарубежных хостерах у меня работает, но помните про Федеральный закон “О персональных данных” от 27.07.2006 N 152-ФЗ и другие инциденты с зарубежными хостерами.