Использовать соединение http 2 для доп ip адреса

Обновлено: 05.07.2024

Для добавление дополнительного IP-адреса на сервер необходимо выполнить описанные ниже шаги.

Новшества

Главное, на что направлена разработка нового протокола, – это на увеличение скорости загрузки страниц. Поэтому разработчики в том числе целились на избавление от некоторых элементов, которые препятствуют к повышению производительности.

HTTP/1 и HTTP/2

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

image

И пять соответствующих недостатков, с которыми можно столкнуться:

image

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

Более подробно с процессом тестирования и результатами можно ознакомиться в презентации с конференции nginx.conf 2015.

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

image


При использовании отдельных серверов, появляется возможность перейти к мультисерверной архитектуре. Сервера могут разделяться физически, виртуально или может использоваться облачное окружение, такое как AWS. Это усложняет архитектуру, по сравнению с односерверным решением или комбинацией cервер+база данных, но дает много преимуществ и является необходимостью для высоконагруженных сайтов.

Начните с использования SPDY

image

  • Сделать так, чтобы доменные имена для шардинговых ресурсов резолвились в одинаковые IP-адреса.
  • Убедиться в том, что используется wildcard-сертификат — в таком случае он будет валидным для всех доменных имен, используемых при шардинге. Либо убедиться, в наличии соответствующего мультидоменного сертификата.

Заключение

HTTP/2

Немного истории

Мультиплексирование

HTTP/2

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

Приоритеты

В первом подходе каждый поток получает определённый вес. Потом на основе веса сервер распределяет нагрузку между потоками. Такой подход уже использовался в протоколе SPDY.

Nginx

После этого откройте конфигурационный файл /etc/nginx/nginx.conf и найдите в секции server следующую строку:

и замените её на:

Сохраните внесённые изменения и перезагрузите Nginx:

Apache

После этого перезапустите Apache. Вот и всё — для базовой настройки этого вполне достаточно.

Объединение изображений в спрайты

Спрайт возвращался в ответ на единственный запрос. Даже если пользователь заходил на страницу, на которой находится всего одно небольшое изображение, нужно было загрузить весь спрайт.

Встраивание изображений с помощью DataURI

Конкатенация JS и CSS

Однако при использовании конкатенации может возникнуть та же проблема, что и со спрайтами: зайдя на какую-то одну страницу сайта, пользователь загрузит все используемые на нём СSS- и JS-файлы (при этом очень вероятно, что большинство из этих файлов ему никогда не понадобятся). Конечно, можно тщательно отбирать файлы для каждой страницы сайта, но это будет занимать слишком много времени.

Ещё одна сложность заключается в том, что все элементы конкатенированного файла нужно вычищать из кэша одновременно. Невозможно сделать так, чтобы для одних элементов была выставлена одна дата истечения срока действия, а для других (которые к тому же и используются гораздо чаще) — другая. Если изменить хотя бы одну строку в CSS — срок действия истечёт сразу у всех элементов.

Доменное шардирование

Разработка

Вот кратко перечисленные в описании концепции пункты:

Шаг 1. Добавление IP на VDS

После выделения IP-адреса в панели управления вам необходимо физически добавить этот адрес на сервер. Сделать это вы можете двумя способами, используя предложенные ниже команды.

Вариант 1: с помощью пакета iproute2

Замените 92.53.X.X на корректный IP-адрес:

Замените 2a03:6f00:4::X.X на корректный IPv6-адрес:

Также необходимо указать default route для IPv6, если вы не сделали этого раньше. В примере ниже указан шлюз для адреса из подсети 2a03:6f00:4::X.X/64, замените его на нужное вам значение (например, для адреса 2a03:6f00:5:1::X.X необходимо указать шлюз 2a03:6f00:5:1::1, и т.д.).

Вариант 2: с помощью утилиты ifconfig

Замените 92.53.X.X на корректный IP-адрес:

Замените 2a03:6f00:4::X.X на корректный IPv6-адрес:

Шаг 2. Добавление IP в конфигурацию сервера

После добавления IP-адреса на VDS необходимо добавить этот адрес в конфигурацию сервера, чтобы после перезагрузки он был добавлен автоматически.

Ubuntu 14.04, 16.04 / Debian 8, 9

Откройте файл /etc/network/interfaces :

Добавьте в него следующие строки (замените 192.168.X.X на нужный IP):

Откройте файл /etc/network/interfaces :

Добавьте в него следующие строки (замените адрес и шлюз (gateway) на нужные значения):

Ubuntu 18.04, 20.04

Необходимо отредактировать файл /etc/netplan/01-netcfg.yaml:

Строго под строкой dhcp4: yes добавьте в него следующую строку, заменив 192.168.X.X на ваш IP:

Итоговый вариант будет выглядеть примерно так:

Обратите внимание! Необходимо соблюдать иерархичность структуры; каждый новый уровень директив должен начинаться с двух пробелов (не отступов Tab).

Необходимо отредактировать файл /etc/netplan/01-netcfg.yaml:

Строго под строкой dhcp4: yes добавьте следующие строки, указав ваш IP и соответствующий шлюз:

Итоговый вариант будет выглядеть примерно так:

Обратите внимание! Необходимо соблюдать иерархичность структуры; каждый новый уровень директив должен начинаться с двух пробелов (не отступов Tab).

Если необходимо добавить одновременно IPv4- и IPv6-адреса, их можно указать друг за другом в строке addresses, например:

CentOS 6, 7

Создайте файл ifcfg-eth0:1 следующей командой:

Добавьте в него следующие строки (замените 192.168.X.X на нужный IP):

Откройте файл /etc/sysconfig/network-scripts/ifcfg-eth0 :

Добавьте в него следующие строки, указав в строке IPV6ADDR нужный вам IPv6-адрес, а в строке IPV6_DEFAULTGW - соответствующий шлюз:

Когда переходить?

Полезные ссылки

В заключение приведём для заинтересованных читателей несколько полезных ссылок по теме:

    ; — краткая, но информативная выдержка из спецификаций по ссылке выше; , написанные разработчиком утилиты curl Даниэлем Стернбергом (см. также русский перевод); .

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

Читайте также: