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)
Ответ на: комментарий от V1KT0P

Есть такое, но поддержка соединения ничего не стоит. Ограничение их количества полезно лишь для сервера, потому как все-таки количество соединений ограничено «физически», но это не случай полудохлого сайта, тем более если из-за этого на него с гейфона зайти нельзя

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

Есть такое, но поддержка соединения ничего не стоит.

Проблема в задержке. Вот представим что надо выполнить 10 запросов к серверу и 5 из них будут длиться 10 секунд и являются не критичными а следующие 5 запросов критические которые надо срочно показать пользователю и они обрабатываются за 100 мс. Ограничение 5 одновременно открытых соединения к серверу. В http1 если первыми будут медленные не критические запросы, то пользователь будет ждать 10.1 секунд для получения нужных ему данных, так как медленные удерживают лимит на соединения. А в http2 даже если первыми отправятся медленные запросы, то следом отправятся критические и через 0.1 секунду у пользователя уже будут нужные ему данные.

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

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

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

в первый раз, потом закешируется все

Что оно закеширует в интерактивных новомодных web 2.0. Это в старом web 1.0 где статичная страница http1 было достаточно. А сейчас когда на каждый чих и движение мышкой отправляется телеметрия это критично.

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

Без http2 запросы браузера жестко ограничены на 5 штук, это мало, особенно если много картинок, или стилей.

Судя по комментариям ниже ты путаешь http2 с http3.

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

Она никогда не заканчивалась, никто еще замену apache2 не написал.

Wordpress, Bitrix рекомендуют apache2+nginx. Хотя для статических сайтов nginx хватит.

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

Wordpress

https://developer.wordpress.org/advanced-administration/server/web-server/nginx/

Bitrix

Да, это говнище дикое. Если взять «официальные» виртуалки от хостеров, там вообще треш, угар и содомия в виде nginx + apache + php-fcgi. Но если чуть подумать, то это говнище нормально запускается на nginx + php-fpm.

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

https://developer.wordpress.org/advanced-administration/server/web-server/nginx/

Лооол, там как раз написано про apache2+nginx, ссылку читал?

Если взять «официальные» виртуалки от хостеров, там вообще треш, угар и содомия в виде nginx + apache + php-fcgi.

Мне кажется ты слабо в вопросе разбираешься, и считаешь что злые хостеры создали BitrixVM который официальный продукт 1С.

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

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

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

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

я конечно по-диагонали читал, но ничего не нашел, что рекомендуют апач.

В самом начале пишут про установку nginx+apache, продолжают тем что wordpress не сможет полностью работать в nginx, изменять конфигурацию сервера. Ниже для плагина есть специальный конфиг, для других плагинов будешь писать сам.

он устарел лет эдак 15 назад.

А nginx устарел на 123 года.

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

Лооол, там как раз написано про apache2+nginx, ссылку читал?

«This guide is referring to a standalone Nginx setup, where it is used as the primary server instead of Apache»

Мне кажется ты слабо в вопросе разбираешься

А мне кажется, что ты не просто плохо в вопросе разбираешься, но и не умеешь читать.

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

Оба вкуснейших продукта

Эти оба вкуснейших продукта подразумевают знатнейшее эпичнейшее пердоленье при обновлении, например, php80 -> php83. Причём используются не дистрибутивные php, а от ispmanager, поэтому есть ряд косяков, из того, с чем столкнулся совсем недавно - например, с сессиями.

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

продолжают тем что wordpress не сможет полностью работать в nginx

Нет, там написано другое, что nginx не может быть полностью взаимозаменяемой заменой (not a completely interchangeable substitute) apache.

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

«This guide is referring to a standalone Nginx setup, where it is used as the primary server instead of Apache»

Ага, вот прямо перед этим куском, есть текст посвященный про nginx+apache2. А ниже куча конфигов, и пример для плагина с кешем, как я уже писал все это самому придется обновлять и писать. Преимущества перед nginx+apache2 точно есть?

А мне кажется, что ты не просто плохо в вопросе разбираешься, но и не умеешь читать.

Что не так я прочел? Хостеры реально делают свои образы или использую официальные от 1С?

Эти оба вкуснейших продукта подразумевают знатнейшее эпичнейшее пердоленье при обновлении, например, php80 -> php83.

Зависит от рук, и используемых плагинов.

Нет, там написано другое, что nginx не может быть полностью взаимозаменяемой заменой (not a completely interchangeable substitute) apache.

И что Wordpress не сможет генерировать правила .htaccess по понятным причинам. И отличия в работе Permalinks.

Заставить работать Nginx с Wordpress и Bitrix можно, я с этим не спорю, просто указываю на кучу проблем.

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

Ага, вот прямо перед этим куском, есть текст посвященный про nginx+apache2.

Есть, и дальше что? Там написано не то, что ты пишешь тут.

А ниже куча конфигов, и пример для плагина с кешем

Для апача они уже написаны.

Зависит от рук, и используемых плагинов.

О да, php80 -> php83 зависит от рук и тем более от используемых плагинов, жги ещё.

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

Есть, и дальше что? Там написано не то, что ты пишешь тут.

Напиши конкретное мое высказывание, я тебе процитирую текст.

Для апача они уже написаны.

Да, правда здорово? Вот бы его можно было использовать с nginx.

О да, php80 -> php83 зависит от рук и тем более от используемых плагинов, жги ещё.

Ну ты уже зажег с виртуалками хостеров, теперь вангую путаешь php80 с php74.

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

Напиши конкретное мое высказывание, я тебе процитирую текст.

«Wordpress… рекомендуют apache2+nginx»

«продолжают тем что wordpress не сможет полностью работать в nginx»

Вот бы его можно было использовать с nginx.

Механизм htaccess от apache нельзя напрямую использовать в nginx, удивительно, да?

теперь вангую путаешь php80 с php74

Ванга из тебя никакая совсем.

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

хттп 2 это когда ты сайт открываешь, а он тебе сразу отправляет все цсс и пр для предзагрузки, до того как хтмл подгрузится, распарсится и ссылки на эти стили будут обработаны

Server push – это только одна из фич HTTP/2. Необязательная и в целом наверное даже редкая.

Сервер пихает в подключение CSS сразу за HTML, ожидая, что следующий запрос всё равно за ним придет. Вроде б так.

HTTP/2 – это про HTTPS везде. Меньше подключений, меньше рукопожатий TLS. Основная причина была именно в этом. Особенно чтобы у Мозиллы с её Let’s Encrypt-ом сервера не потухли от нагрузки.

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

продолжают тем что wordpress не сможет полностью работать в nginx

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

Механизм htaccess от apache нельзя напрямую использовать в nginx, удивительно, да?

Да, казалось бы, зачем использовать nginx в продуктах где активно используется htaccess.

Ванга из тебя никакая совсем.

Ок, значит руки все же кривые, если на минорщине какие то адовые проблемы...

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

Правила переадресации и избранные плагины не будут работать.

Почему-то УМВР, а у тебя «не будут работать».

Ок, значит руки все же кривые, если на минорщине какие то адовые проблемы…

Это просто значит, что ты ВООБЩЕ не в теме, но мнение несёшь.

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

Правила переадресации и избранные плагины не будут работать.

Почему-то УМВР, а у тебя «не будут работать».

Ну конечно у админа сайтов визиток не будет проблем. Однако прямо на статье на которую ты ссылаешься, есть правила для плагина. Для очень нужного плагина. Их придется писать. В apache2 это работает без дописываний правил. Вот и все что я хотел показать. В nginx работы больше, преимущества его фанаты назвать не могут.

Если ты хочешь сказать что «УМВР = можно заставить работать», то я тебя разочарую, и напомню про полноту по тьюрингу, с помощью hex-редактора можно ее добиться для любого сервера.

Это просто значит, что ты ВООБЩЕ не в теме, но мнение несёшь.

Ты ничего не ответил на мои вопросы, не позорься пожалуйста. Пока я делаю вывод что ты:

1) Путаешь версии PHP

2) Не прочитал даже основную документацию по Bitrix для хостеров

Я переводил как самые простые сайты на bx и wordpress, так и B24 Enterprise редакции на новый PHP, почему то проблем не возникло, попробуй следовать официальным инструкциям...

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

преимущества его фанаты назвать не могут

Ты меня с кем-то путаешь. Я спокойно использую и apache и nginx.

Ты ничего не ответил на мои вопросы

Их не было. А ты так и не ответил на мои.

  1. Путаешь версии PHP

Как я их могу путать, когда я 2 наза написал «php80 -> php83» и буквально позавчера я удалил ошмётки php80 и, получив косяк с cron’овским заданием, правил там путь с php80 на php83?

  1. Не прочитал даже основную документацию по Bitrix для хостеров

Я не хостер, я человек, который решил несколько задач/проблем, за которые люди ранее брались, но обосрались. Включая, кстати, разработчиков этого сайта (нанятая контора)

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

Ты меня с кем-то путаешь. Я спокойно использую и apache и nginx.

Ты предлагаешь писать кучу конфигов, просто что бы не использовать apache2.

Их не было. А ты так и не ответил на мои.

Единственное на что я не ответил это ««Wordpress… рекомендуют apache2+nginx»» для меня рекомендация это начало текста, ты видимо не согласен

У тебя я спрашивал являются ли «виртуалки хостеров» = BitrixVM

получив косяк с cron’овским заданием

И WordPress и Bitrix используют свою внутреннюю реализацию планировщика событий. Как это к ним относится?

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

Название у курса странное, согласен. Курс для хостеров рассматривает установку и обслуживание, а курс для администраторов настройки через админ-панель.

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

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

Ты предлагаешь писать кучу конфигов, просто что бы не использовать apache2.

Нет, я это не предлагаю. Тебя подвело зрение/навык чтения/навык понимания.

У тебя я спрашивал являются ли «виртуалки хостеров» = BitrixVM

Не спрашивал.

Bitrix используют свою внутреннюю реализацию планировщика событий. Как это к ним относится?

https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2943

Название у курса странное, согласен. Курс для хостеров рассматривает установку и обслуживание, а курс для администраторов настройки через админ-панель.

А, https://dev.1c-bitrix.ru/learning/course/* я, естественно, (частично) изучил.

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

Нет, я это не предлагаю. Тебя подвело зрение/навык чтения/навык понимания.

Тогда поясни, что значит «Эра «на фронте nginx, на бэке apache+mod_php» закончилась лет 10 назад.», для меня это звучит как: «связка nginx - apache устарела и нинужно»

Не спрашивал.

Цитирую свой вопрос «Что не так я прочел? Хостеры реально делают свои образы или использую официальные от 1С?»

https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=2943

Агенты это названия своей реализации cron-подобных задач, если не настраивать cron, то они вызываются на хите, как в wordpress. Вызов их можно настроить не только из cron, но и из systemd, и вообще чего угодно. К версии PHP они не привязаны.

За их вызов ответственен администратор, если они конечно переключены на выполнение по cron, и то что у тебя они вызывались на cron, и там была привязка к версии по пути, никак не связано с самим bitrix.

А, https://dev.1c-bitrix.ru/learning/course/* я, естественно, (частично) изучил.

При этом когда я указал на название основного курса, ты начал говорить что ты не хостер. Как то не верится.

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

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

Рекомендованная структура - это образ виртуалки, на которую, естественно, никто не собирается переходить, т.к. всё сделано битриксоделательной конторой и крутится в виртуалке у рекомендованного хостера. Увы, костылей, кроме хостера, никто не наводил специально.

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

для меня это звучит как: «связка nginx - apache устарела и нинужно»

Ты додумываешь зачем-то за меня то, что я не имею ввиду.

apache + mod_php отлично работает (у меня тоже, кстати) без nginx’а перед ним. Устарело ровно то, что я написал.

Цитирую свой вопрос

Это (про-)странный вопрос, на который я не вижу смысла отвечать, я не могу проверить всех хостеров.

К версии PHP они не привязаны.

К версии - нет, к пути - да: /opt/php83/bin/php vs /opt/php80/bin/php :)

За их вызов ответственен администратор, и то что у тебя они вызывались на cron, и там была привязка к версии по пути, никак не связано с самим bitrix.

cron указан в официальном курсе, ссылку дал. Привязка связана с хостером, да.

При этом когда я указал на название основного курса, ты начал говорить что ты не хостер. Как то не верится.

Ну не верится, так не верится.

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

apache + mod_php отлично работает (у меня тоже, кстати) без nginx’а перед ним. Устарело ровно то, что я написал.

nginx перед ним требуется для многих проектов на bitrix. Для меня, если есть актуальное применение, и нету недостатков, это никак не «устарело».

Даже если откинуть BitrixVM, еще совсем недавно без Nginx было проблематично завести основной функционал в BX24, из за зависимости модуля Push&Pull, но сейчас его переделали на Node.js.

cron указан в официальном курсе, ссылку дал. Привязка связана с хостером, да.

Там указывается работа в BitrixVM без привязки к версии. Все что делает cron в этом случае, вызывает специальный скрипт который уже вызывает агенты, так что вместо cron может быть что угодно.

Вернемся к обсуждению миграции на новую версию PHP, если следовать рекомендациям, то телодвижения будут минимальными, за исключением особых случаев, вот php80 -> php83 проходит гладко.

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

nginx перед ним требуется для многих проектов на bitrix.

Но зачем? Когда-то давно nginx ставили перед apache из-за того, что apache медленно отдавал статику. Эта проблема давным-давно решена.

и нету недостатков

Есть, http2 превращается в тыкву, что выше написали.

Все что делает cron в этом случае, вызывает специальный скрипт который уже вызывает агенты, так что вместо cron может быть что угодно.

Именно так, да, в моём случае (и в случае курса) cron дёргает специальный скрипт, зачем мне пересказ курса?

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

Есть, http2 превращается в тыкву, что выше написали.

Это проблема конкретной настройки. Грамотная настройка apache-nginx явно занимает меньше строк чем переписывание правил для nginx. А иногда она вообще дается «бесплатно» как с bitrixvm.

Именно так, да, в моём случае (и в случае курса) cron дёргает специальный скрипт, зачем мне пересказ курса?

Изначально я спорил с твоим высказыванием «Эти оба вкуснейших продукта подразумевают знатнейшее эпичнейшее пердоленье при обновлении», я считаю что проблем нет, если их не создавать специально как с кривым cron. Но причем тут сам продукт?

Я тоже иногда страдаю с ispmanager, но я не связываю его проблемы с bitrix или wordpress.

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

Это проблема конкретной настройки.

Нет, http2 не пойдёт за proxy_pass.

Но причем тут сам продукт?

При том, что архитектурно продукт кривой и косой, жрёт ресурсы как не в себя, кривые малоинформативные логи, нормально подходит только для сайтов-визиток. Все эти оптимизации в виде композитного сайта, кривые до невозможности. Это говорю я, как периодически и поверхностно с этим сталкивающийся и мой хороший знакомый - сертифицированный bitrix-специалист, который сталкивается с этим постоянно.

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

Нет, http2 не пойдёт за proxy_pass.

http2 должен быть на nginx, ограничение на 5 запросов о котором я писал выше, существует лишь в браузере.

пердоленье при обновлении

Но причем тут сам продукт?

архитектурно продукт кривой и косой, жрёт ресурсы как не в себя

Это не относится к обновлению, и уже совсем другая тема, я не согласен с некоторыми пунктами, bitrix24 это не сайт визитка. Сертификация есть и у меня.

Обуздай сначала свой ОКР, потом буду отвечать. Пока.

Если не иметь СДВГ, то можно выждать лимит времени на запрет изменений...

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

битрикс - это говно с массивами и копипастой файлов. нет ничего ужаснее. а вордпресс - набор функций и глобальных переменных. оба «продакта» представляют собой жуткий говнокод, только к последнему предъявить и нечего. да, говно, но бесплатное

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

он раньше был обязательным так как не было php fpm в nginx, те тот вообще не мог похапе отдавать. разработчики битрикса - это дегенеоаты, которые так делают, потому что так раньше «было принято», а почему и нужно ли сейчас - им уже квалификации не хватает понять. если, конечно, морковка не врет с его утверждениями

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

Меньше подключений, меньше рукопожатий TLS.

может и так. но в общем случае хттп2 - это то что можно спокойно отрубить, хотя может там просто тип сертификата нужно поменять и тогда хттп2 заработает на его телефоне. их этих версий tls не одна

rtxtxtrx ★★
()