LINUX.ORG.RU

NGINX директива «http2 on» ломает Safari

 , ,


0

1

Много лет писал в одну строку listen 443 ssl http2; и это работало. После недавнего обновления, выхлоп nginx -t показал directive is deprecated. Разбил на две строки (как там https://forum.hestiacp.com/t/nginx-1-25-1-listen-http2-directive-is-deprecated/9816) но это сломало Safari. Пришлось закомментировать http2 on из-за Safari.

listen 443 ssl;
http2 on; #ломает Safari

NGINX отдаёт статичную страничку. В хроме и лисе всё работает. А вот Safari рушится с ошибками у себя в кишках-движках (на кишки указывает NS, как сокращение от NextStep).

Catalina 10.15.7

Safari не может открыть страницу. Ошибка: "Не удалось завершить операцию. Ошибка протокола" (NSPOSIXErrorDomain:100)

Monterey 12.6.1

Safari не может открыть страницу. Ошибка: "cannot parse response" (NSURLErrorDomain:-1 017)

Можно прожить и без http2, но хотелось бы пофиксить.

P.S: долго придётся ждать пока OpenSource съест всё остальное и не будет никаких браузеров кроме хрома?



Последнее исправление: k0ttee (всего исправлений: 1)
Ответ на: комментарий от X512

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

Я не могу представить кто им вообще может пользоваться, только человек далекий от компьютера, которому по большому невезению продали/купили аплле продукцию, поэтому он мучается с Safari и не знает как поставить другие браузеры.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 4)
Ответ на: комментарий от yandrey

Кроме этих двух строк есть (ну и пути к сертификатам от LetsEncrypt).

ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;

ssl_stapling on;
ssl_stapling_verify on;

Про Upgrade заголовки читал, когда интересовался веб-сокетами. Кроме обычных запросов, у меня местами есть Server Sent Events. Нигде не использую Upgrade заголовки.

Попробовал так. Не помогло.

add_header Upgrade h2;
k0ttee
() автор топика
Ответ на: комментарий от MOPKOBKA

проприетарный

4.2 Исходники движка открыты и тот же движок используется например в стандартном браузере GNOME.

отсталый

Это скорее Хром жутко раздутый. WebKit как раз старается следовать спецификациям.

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

На удивление им можно пользоваться ради свободы, легковесноси и приватности (я имею в виду свободные браузеры на основе WebKit). Chrome и Firefox – монстры, да ещё и шпионят за пользователем. Firefox – франкинштейн с кодом на C++ и Rust.

X512 ★★★★★
()
Ответ на: комментарий от ann_eesti

Интересно, но у меня не проксирование. У меня простейшая отдача статичной странички (страничка сама себе пердолит JS-фронтенд и подгружает сложности через CORS из GitHub Pages и из других источников).

k0ttee
() автор топика
Ответ на: комментарий от X512

*идет обсуждение браузера*
4.2
Исходники движка открыты

Спасибо что пометил свое сообщение.

На удивление им можно пользоваться ради свободы, легковесноси и приватности

Ничего тупее не слышал, ты в какой реальности находишься? Это проприетарный браузер, доступный только для проприетарной платформы которая постоянно отсылает твои данные, и настаивает на обязательной единой идентификации.

Отдельно можно выделить особую любовь пользователей Safari к старым дырявым версиям. Это связанно с тем, что им промыли мозги маркетологи, а денег у них на эти девайсы нету, поэтому маководы это часто обладатели устаревшего железа с устаревшим ПО.

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

Это скорее Хром жутко раздутый. WebKit как раз старается следовать спецификациям.

Firefox намного более адекватный браузер, хотя его не делает Apple. Часто Safari отстает от него на несколько лет. Даже компания-побирушка Mozilla может позволить себе делать хороший браузер.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 5)
Ответ на: комментарий от k0ttee

Ну да, за ближайшие 5-10 лет хорошо бы выяснить в чём дело, если сафари к тому времени не пофиксят.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от MOPKOBKA

Ничего тупее не слышал, ты в какой реальности находишься? Это проприетарный браузер, доступный только для проприетарной платформы

Браузер – это не более чем тонкая обёртка над движком. Я не вижу смысла вообще его обсуждать, я говорю о движке WebKit, а он открытый. Тот же GNOME Web (Epiphany) работает также как и Safari.

X512 ★★★★★
()
Ответ на: комментарий от firkax

Макбуки Retina 2012 не получат никаких обновлений. А вот версия NGINX на серверах будет обновляться (большинство новых сайтов точно будут появляться на новейших версиях вебсервера).

k0ttee
() автор топика
Ответ на: комментарий от k0ttee

Получат, вместо них за 10 лет купят макбуки 2020 года например.

А насчёт nginx я ж написал - за 5-10 лет надо бы разобраться. Раньше чем через 5 лет никто эту опцию не уберёт. Если вообще когда-то уберут.

А вот версия NGINX на серверах будет обновляться

Версию nginx выбирает обычно тот же кто пишет для неё конфиг всяких ssl/http2 и подобного, так что не надо изображать будто это веление свыше.

firkax ★★★★★
()
Ответ на: комментарий от MOPKOBKA

Я человек, близкий к компьютеру, купивший мак самостоятельно и я наслаждаюсь Safari. Другие браузеры у меня стоят, т.к. я иногда разрабатываю веб-приложения и нужно их тестировать.

Пожалуй единственная претензия к Safari - не поддерживает WebUSB и некоторые другие стандарты.

vbr ★★★★
()
Ответ на: комментарий от vbr

Линуксоедам и шиндоигрунам не понять сути нового сафари.

Я в фф обмазаном планинами хожу только на недовереный интернет. Все хорошие сайты в том числе лор я в сафари смотрю.

guyvernk
()
Ответ на: комментарий от zolden

Старые Safari будут работать с http3, если заменить NGINX на Caddy? Звучит, как поменяй бубунту на рач, когда у меня альпайн.

Может быть ещё пхп-рыночек поменять на го? Будете писать на го за пхп-зряплату?

k0ttee
() автор топика
Ответ на: комментарий от anonymous

Safari открывает только свою страницу ошибки с адреса safari-resource:/ErrorPage.html

Посмотреть заголовки запроса/ответа привычным способом невозможно… Вот как выглядит https://d.zaix.ru/KT9J.png

k0ttee
() автор топика
Последнее исправление: k0ttee (всего исправлений: 1)

Да он тебе и не нужен этот http/2. Ни вордпрессы, ни популярные фремворки на нем не работают. То просто профанация - у тебя прокси (nginx) транслирует http/1.1 в http/2. Твой гейфон просто не умеет в http/2. Я так понимаю, что твоя гей ось какая-то старая и в ней чего-то нет нужного для поддержки более нового и ненужного протокола. А обновить старую гей ось нельзя, так как тогда не будут ежегодно покупать новые гейфоны… Нормальные люди андроидами так-то пользуются, но я подозреваю, что любителей древних гейфонов с рук достаточно много чтобы просто забить на их существование

rtxtxtrx ★★
()
Последнее исправление: rtxtxtrx (всего исправлений: 1)

The final official release of macOS Catalina was v. 10.15.7 on July 22, 2022. Most analysts & users consider that to have been the «end of life» date even though Apple does not publish an end-of-life schedule.

народ считает что Catalina eol несмотря на то что Apple не публикует даты еол. вместе с ней и броузер. забудьте.

jura12
()
Ответ на: комментарий от rtxtxtrx

Ни вордпрессы, ни популярные фремворки на нем не работают. То просто профанация - у тебя прокси (nginx) транслирует http/1.1 в http/2.

Ты с дуба рухнул? Эра «на фронте nginx, на бэке apache+mod_php» закончилась лет 10 назад.

Dimez ★★★★★
()
Ответ на: комментарий от Dimez

нет. хттп 2 это когда ты сайт открываешь, а он тебе сразу отправляет все цсс и пр для предзагрузки, до того как хтмл подгрузится, распарсится и ссылки на эти стили будут обработаны. для этого нужно писать лишний код и заранее знать, что там на фронте используется + часто все эти стили и js находятся на левых cdn - отсюдаи бесполезность данного протокола + ускорение достигается за счет параллельной загрузки всего, после чего все ассеты кешируются и далее не грузятся, тут уже вопрос в критичности того важно ли то, что сайт в первый раз загрузится за 380 мс вместо 150

rtxtxtrx ★★
()
Ответ на: комментарий от rtxtxtrx

бесполезность данного протокола

Разве это так? На сколько я понимаю http2 решает реальные проблемы http1. Например в http1 если нужно сделать 10 запросов то будет октрыто 10 соединений, но на один домен есть ограничения на количество этих соединений. А в http2 будет открыто всего одно соединение и в рамках него будут обработанны все запросы без ожидания как это было в http1.

V1KT0P ★★
()