Задать вопрос
HarisNvr
@HarisNvr
Начинающий кодер Python

Как определить причину неудачи запроса в IOS?

С недавнего времени на всех IOS, которые ниже 26-й версии (последняя на данный момент) перестал открываться мой сайт.

Не открываются ни Django, ни React страницы. Всё бы ничего, но такая проблема есть ТОЛЬКО на Iphone с устаревшим IOS (браузер не важен, пробовал и Safari, и Yandex и Mozilla). На телефонах с 26-й осью, Android и десктопах всё открывается без проблем - как на мобильном, так и на домашнем инете.

Единственное, что помогает открыть сайт на старом IOS - OpenVPN через сервер Мск, либо любой другой VPN. Но повторю - на этом же самом WI-FI телефон на Android или IOS 26 не нуждается ни в каких VPN. Там открывается всё без проблем.

Я не знаю даже с чего начать и куда смотреть, судя по nginx запросы на сервер приходят всегда. Заметил проблему сегодня, хотя когда заходил неделю назад подобного не было и всё работало как надо. Сайту уже почти год. Это простой онлайн магазин на Django+React.

UPD: Домен НЕ помечен как мошеннический, плашек никаких нет. В google.com/safe-browsing тоже чисто.

UPD2: Поменял в nginx корень на редирект - всё также, то есть проблема не в подгрузке элементов сайта. С ПК, новых IOS и Android кидает на ya.ru, а у остальных висит до таймаута

location / {
    return 301 https://ya.ru;
  }


UPD3: Вот что выводится в лог, когда пытаешься зайти со старого IOS (чувств. данные изменены)
XXX.XXX.XXX.XX - - [06/Apr/2026:09:34:36 +0300] "GET / HTTP/1.1" 200 32617 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 18_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.7.1 Mobile/22H31 Safari/604.1" "-"

XXX.XXX.XXX.XX - - [06/Apr/2026:09:34:39 +0300] "GET /_next/image?url=https%3A%2F%2Fsome_pic.jpg&w=750&q=75 HTTP/1.1" 304 0 "https://mysite.ru/" "Mozilla/5.0 (iPhone; CPU iPhone OS 18_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.7.1 Mobile/22H31 Safari/604.1" "-"


Далее там одни 304 т.к. сайт уже неоднократно запрашивался

UPD4: Перенёс код сайта 1/1 на другой хост, по IP абсолютно нормально заходит со всех устройств. На оригинальном хосте проблема такая же, как и была. IP или Домен не важно, старые версии IOS почему-то заходить не хотят

UPD5: Получил сертификат через certbot и на новом IP началась та же самая история, есть ощущение, что проблема именно в нём. Попробую поднять только на 80 порту без ssl

UPD6: Поднял без ssl от certbot - всё прекрасно работает. Проблема 100% в нём. А что делать дальше то?)
  • Вопрос задан
  • 1210 просмотров
Подписаться 4 Простой 18 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    1C-программист: расширенный курс
    18 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по информационной безопасности
    9 месяцев
    Далее
Решения вопроса 1
@Tarantool_liker
Проблема тут не в сайте.

У нас такая же проблема, у мобильных пользователей iOS может не работать приложение, а с той же сети одновременно сидит Андроид и все работает ок, с того же вай фая. Более того, есть когда в семье новый айфон и предыдущий Айфон, пользователи пишут что новый работает, старый не работает, обновляют iOS, он начинает работать. Пишут что с VPN часто работает сразу без проблем, но не всегда.

Очень странно что у кого не работает, обновляют iOS и начинает работать без проблем.
Еще факт интересный в том что у нас много пользователей из РБ, вот у них вообще жалоб нет никаких, всегда все ок.

Поддержка дата центра отвечает что проблема массовая так как не только мы жалуемся на это (что из одной сети все доступно, из другой сети ни у кого не работает), говорят что это идет фильтрация какая-то ТСПУ в Роскомнадзоре наверное или вышестоящие провайдеры что-то фильтруют

Еще наблюдение что в Москва МО Питер почти нет жалоб, в основном жалобы из регионов по iOS, по андроиду вообще нет проблем никаких

У нас часть серверов в защищенной сети, мы делали там новый домен новый IP, вроде все завелось, потом буквально через час снова все потухло потому что новый домен и новый IP перестали работать, как будто по кнопке включился какой-то фильтр.

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

Вся эта свистопляска началась 1 апреля, но пик 3-4-5-6 апреля, щас чуть меньше жалоб но все равно они не пропали
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
gohdan
@gohdan
Системный администратор
Столкнулись с такой же проблемой и выяснили, что помогает понижение версии TLS на веб-сервере с версии 1.3 до версии 1.2. Скорее всего, причина в том, что на старых версиях iOS используется шифрование SNI, которое есть в TLS 1.3 и блокируется (кейс Cloudflare), а новые версии либо не используют его, либо при неудаче отказываются от него.
Ответ написан
@Manilove
Я нашел решение
Поделюсь своей историей

Проблема: сайт перестал открываться на любых iOS (MacBook,iphone) в браузере safari. Бесконечная загрузка.
При этом на iPhone, Mac в других браузерах прекрасно работало.
В логах nginx запросы приходили, иногда даже отдавался 200, но на телефоне страница висела до таймаута.

Что проверял:

Сначала исключил TLS/сертификат: перевыпустил Let’s Encrypt с ECDSA на RSA (issuer стал R12/R13, Public Key Algorithm: rsaEncryption) — стало “правильнее”, но проблему на iOS это не сняло.
Пробовал отключать TLS 1.3 (оставлял TLS 1.2) и проверял через openssl s_client — тоже не помогло.
Проверил, что HTTP/2 не используется (в listen 443 не было http2) — значит не он.
Где была причина:

В gzip-сжатии ответов nginx. На части старых iOS/сетей (часто из‑за прокси/DPI/особенностей маршрута) сжатые ответы обрабатывались некорректно — страница “висела”, хотя сервер формально отвечал.
Как решил:

Стояло
gzip on;

Для проверки временно выключил gzip:
gzip off;
После этого на проблемных iPhone всё сразу заработало — стало понятно, что виноват gzip.
Вернул gzip, но настроил “безопасно”:
gzip on;
gzip_http_version 1.1;
gzip_comp_level 5;
gzip_min_length 1024;
gzip_vary on;
gzip_proxied any;
gzip_types
text/plain
text/css
application/json
application/javascript
text/xml
application/xml
application/xml+rss
text/javascript;
После этого сайт стал открываться на любых iOS (MacBook,iphone) в браузере safari.

Как проверил:

Убедился, что gzip реально работает:
curl -I -H 'Accept-Encoding: gzip' https://site.ru/ | grep -i content-encoding
→ Content-Encoding: gzip
И что есть Vary: Accept-Encoding, чтобы кеши не ломались.
Итог:
В моем случае проблема была не в приложении (VUE) и не в домене/хостинге, а в том, как nginx сжимал ответы. Правильная настройка gzip решила проблему.
Ответ написан
Комментировать
@Drno
предположение - РКН блокирует отпечаток \ сигнатуру старого Сафари браузера...
он же тут умудрился положить опять пол инета в стране

тем более раз через ВПНку всё работает)
Ответ написан
@app_router
Мы, кажется, столкнулись с абсолютно такой же проблемой.

У нас прод на VPS (nginx + SPA), который стабильно работал около полугода, и примерно с 1 апреля начались странные зависания именно на iPhone (iOS 18.x). Причём браузер не важен — Safari, Chrome ведут себя одинаково.

Симптомы почти один в один:

* страница иногда просто висит и в итоге падает в ERR_CONNECTION_TIMED_OUT
* в этот момент запросы вообще не доходят до nginx (нет записей в логах)
* через VPN с того же устройства всё открывается мгновенно
* по HTTP (другой порт) всё работает стабильно

Пока тоже не можем точно понять причину, но всё указывает на какой-то сетевой уровень (маршрутизация / фильтрация / DPI).

Поддержка vps хостера ответила: "возможно присутствует ограничение на стороне ТСПУ с доступом на 443 порт".

Если кто-то докопается до реального источника проблемы — будет очень полезно узнать.
Ответ написан
@qylaris
Сталкнулся с такой же проблемой, удалось её решить?

UPD: перевыпустил сертификат с ECDSA (выдается по умолчанию cerbot) на RSA и пока что заработало, ждемс
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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