Я нашел решение
Поделюсь своей историей
Проблема: сайт перестал открываться на любых 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 решила проблему.