Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

NGINX. Книга рецептов

Покупка
Артикул: 739796.01.99
Доступ онлайн
599 ₽
В корзину
Из этой книги вы узнаете, как получить максимальную отдачу от NGINX с открытым исходным кодом и NGINX Plus. Вы получите простые рекомендации по вопросам разного уровня сложности - начиная с установки ПО и настройки основных функций до устранения неполадок. Автор описывает новые функции NGINX с открытым исходным кодом, такие как поддержка gRPC, сервер активной доставки НТТР/2 и алгоритм балансировки нагрузки Random with Two Choices для кластерных сред, а также новые функции NGINX Plus. Издание предназначено для администраторов и разработчиков сайтов.
Йонге де, Д. NGINX. Книга рецептов : практическое руководство / Д. де Йонге ; пер. с анг. Д. А. Беликова. - Москва : ДМК Пресс, 2020. - 176 с. - ISBN 978-5-97060-790-9. - Текст : электронный. - URL: https://znanium.com/catalog/product/1094952 (дата обращения: 28.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Дерек де Йонге

NGINX.  
Книга рецептов

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

NGINX Cookbook

Advanced Recipes for High Performance  
Load Balancing

Derek DeJonghe

Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo

2019 UPDATE

Москва, 2020

Дерек де Йонге

NGINX. Книга рецептов

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

Перевод с английского Беликова Д. А.

УДК   004.42
ББК   32.972
Й11

Й11   Дерек де Йонге
NGINX. Книга рецептов. / пер. с англ. Д. А. Беликова. – М.: ДМК Пресс, 
2020. – 176 с.: ил.

            ISBN 978-5-97060-790-9

Из этой книги вы узнаете, как получить максимальную отдачу от 
NGINX с открытым исходным кодом и NGINX Plus. Вы получите простые рекомендации по вопросам разного уровня сложности – начиная с 
установки ПО и настройки основных функций до устранения неполадок. 
Автор описывает новые функции NGINX с открытым исходным кодом, 
такие как поддержка gRPC, сервер активной доставки HTTP/2 и алгоритм 
балансировки нагрузки Random with Two Choices для кластерных сред, а 
также новые функции NGINX Plus.
Издание предназначено для администраторов и разработчиков сайтов.

УДК  004.42
ББК  32.972

Original English language edition published by O'Reilly Media, Inc. Copyright © 2019 
O'Reilly Media Inc. All rights reserved. Russian-language edition copyright © 2019 by 
DMK Press. All rights reserved.

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

ISBN 978-1-49196-893-2 (англ.)         © 2019 O'Reilly Media Inc. All rights reserved.
ISBN 978-5-97060-790-9 (рус.)              © Оформление, перевод на русский язык, издание,
 
      ДМК Пресс, 2020

Оглавление

Предисловие от издательства ...........................................................................................10

Предисловие .........................................................................................................................11

Глава 1. Основы ....................................................................................................................12

1.0. Введение ......................................................................................................................................12
1.1. Установка на компьютер с Debian/Ubuntu ....................................................................12
1.2. Установка на компьютер с RedHat/CentOS  ...................................................................13
1.3. Установка NGINX Plus .............................................................................................................14
1.4. Проверка установки ................................................................................................................15
1.5. Ключевые файлы, команды и каталоги...........................................................................16
1.6. Обслуживание статического контента ............................................................................18
1.7. Аккуратная перезагрузка ......................................................................................................19

Глава 2. Высокопроизводительная балансировка нагрузки .........................................20

2.0. Введение ......................................................................................................................................20
2.1. Балансировка нагрузки для HTTP .....................................................................................21
2.2. Балансировка нагрузки для TCP ........................................................................................23
2.3. Балансировка нагрузки UDP................................................................................................24
2.4. Методы балансировки нагрузки ........................................................................................26
2.5. Директива sticky cookie .........................................................................................................28
2.6. Директива sticky learn ............................................................................................................29
2.7. Директива sticky route ............................................................................................................30
2.8. Осушение соединения ...........................................................................................................32
2.9. Пассивные проверки работоспособности .....................................................................33
2.10. Активные проверки работоспособности .....................................................................34
2.11. Медленный запуск ................................................................................................................36
2.12. Проверки работоспособности TCP .................................................................................37

Глава 3. Управление трафиком ..........................................................................................39

3.0. Введение ......................................................................................................................................39
3.1. A/B-тестирование .....................................................................................................................39
3.2. Использование модуля GeoIP и базы данных ..............................................................40
3.3. Ограничение доступа в зависимости от страны .........................................................43

 Оглавление

3.4. Поиск исходного клиента .....................................................................................................44
3.5. Ограничение подключений .................................................................................................45
3.6. Ограничение скорости ...........................................................................................................46
3.7. Ограничение пропускной способности ...........................................................................48

Глава 4. Массивно масштабируемое кеширование контента .......................................50

4.0. Введение ......................................................................................................................................50
4.1. Кеширование зон .....................................................................................................................50
4.2. Хеш-ключи кеширования......................................................................................................52
4.3. Обход кеширования ................................................................................................................53
4.4. Производительность кеширования ..................................................................................54
4.5. Продувка ......................................................................................................................................55
4.6. Директива slice .........................................................................................................................56

Глава 5. Программируемость и автоматизация ..............................................................58

5.0. Введение ......................................................................................................................................58
5.1. API NGINX Plus ..........................................................................................................................59
5.2. Хранилище типа ключ/значение .......................................................................................63
5.3. Установка с использованием приложения Puppet .....................................................65
5.4. Установка с использованием системы Chef ..................................................................67
5.5. Установка с использованием системы Ansible.............................................................69
5.6. Установка с использованием SaltStack ...........................................................................70
5.7. Автоматизация конфигураций с помощью Consul ......................................................72

Глава 6. Аутентификация ....................................................................................................75

6.0. Введение ......................................................................................................................................75
6.1. Базовая HTTP-аутентификация ..........................................................................................75
6.2. Подзапросы аутентификации .............................................................................................77
6.3. Валидация токенов в формате JWT ..................................................................................78
6.4. Создание веб-ключей в формате JSON...........................................................................79
6.5. Аутентификация пользователей с помощью существующего протокола 
единого входа OpenID Connect ..........................................................................................81

6.6. Получение ключа в формате JSON от Google ..............................................................82

Глава 7. Контроль безопасности ........................................................................................84

7.0. Введение ......................................................................................................................................84
7.1. Доступ на основе IP-адреса .................................................................................................84
7.2. Разрешение совместного использования ресурсов между разными 
источниками ...............................................................................................................................85

Оглавление  7

7.3. Шифрование на стороне клиента ......................................................................................87
7.4. Восходящее шифрование .....................................................................................................89
7.5. Безопасность местоположения ...........................................................................................90
7.6. Генерация безопасного соединения при помощи ключа безопасности ...........91
7.7. Безопасность местоположения при помощи ограниченной даты ........................92
7.8. Генерация ссылки с ограниченным сроком ...................................................................94
7.10. Перенаправление на HTTPS, когда SSL/TLS прекращается до NGINX ............97
7.11. Строгая безопасность доставки HTTP ...........................................................................98
7.12. Удовлетворение любого числа методов безопасности ..........................................98
7.13. Динамичное ослабление DDoS .....................................................................................100

Глава 8. HTTP/2 ..................................................................................................................102

8.0. Введение ...................................................................................................................................102
8.1. Базовая настройка ................................................................................................................102
8.2. gRPC ............................................................................................................................................103
8.3. Сервер активной доставки HTTP/2 ...............................................................................106

Глава 9. Управление сложными потоками медиа ........................................................107

9.0. Введение ................................................................................................................................... 107
9.1. Обслуживание MP4 и FLV .................................................................................................. 107
9.2. Организация потоков с помощью HLS .........................................................................108
9.3. Организация потоков с помощью HDS ........................................................................110
9.4. Пределы полосы пропускания.........................................................................................110

Глава 10. Развертывание в облачных решениях..........................................................112

10.0. Введение ................................................................................................................................112
10.1. Автоматическая настройка в AWS................................................................................112
10.2. Маршрутизация в узлы NGINX без ELB .....................................................................115
10.3. NLB-сэндвич .........................................................................................................................116
10.4. Развертывание из AWS Marketplace ........................................................................... 117
10.5. Создание образа виртуальной машины NGINX в Azure .....................................119
10.6. Балансировка нагрузки поверх наборов масштабирования NGINX  
в Azure ........................................................................................................................................122

10.7. Развертывание через Azure Marketplace ..................................................................123
10.8. Развертывание в Google Compute Engine  ..............................................................124
10.9. Создание образа Google Compute...............................................................................125
10.10. Создание прокси-сервера для Google App Engine ............................................126

 Оглавление

Глава 11. Контейнеры/Микросервисы ...........................................................................128

11.0. Введение ................................................................................................................................128
11.1. Записи DNS SRV ..................................................................................................................128
11.2. Использование официального образа NGINX ........................................................130
11.3. Создание Dockerfile NGINX.............................................................................................131
11.4. Сборка образа NGINX Plus .............................................................................................133
11.5. Использование переменных среды в NGINX ..........................................................135
11.6. Контроллер Ingress в Kubernetes ................................................................................. 137
11.7. Маршрутизатор OpenShift ...............................................................................................140

Глава 12. Режимы развертывания высокой доступности ...........................................142

12.0. Введение ................................................................................................................................142
12.1. Режим высокой доступности NGINX ...........................................................................142
12.2. Балансировка нагрузки балансировщиками с помощью DNS ........................143
12.3. Балансировка нагрузки в EC2 .......................................................................................144
12.4. Синхронизация конфигурации .....................................................................................145
12.5. Совместное использование состояния с помощью Zone Sync .........................148

Глава 13. Расширенный мониторинг активности .........................................................150

13.0. Введение ................................................................................................................................150
13.1. Активация модуля Stub Status с открытым исходным кодом ..........................150
13.2. Активация инструментальной панели мониторинга NGINX Plus ....................151
13.3. Сбор метрик с помощью API NGINX Plus..................................................................153

Глава 14. Отладка и устранение неполадок с помощью журналов доступа, 
журналов ошибок и отслеживания запросов ...............................................................157

14.0. Введение ................................................................................................................................ 157
14.1. Настройка журналов доступа ........................................................................................ 157
14.3. Отправка журналов в Syslog..........................................................................................159
14.4. Трассировка запросов ......................................................................................................161

Глава 15. Настройка производительности .....................................................................163

15.0. Введение ................................................................................................................................163
15.1. Автоматизация тестов с помощью драйверов нагрузки ....................................163
15.2. Сохраняем подключения открытыми для клиентов ............................................164
15.3. Сохраняем подключения открытыми для вышестоящих серверов ...............165
15.4. Буферизация ответов ........................................................................................................166
15.5. Буферизация журналов доступа .................................................................................. 167
15.6. Настройка ОС .......................................................................................................................168

Оглавление  9

Глава 16. Советы по практической эксплуатации и заключение ...............................170

16.0. Введение ................................................................................................................................170
16.1. Использование директивы include для чистых настроек ..................................170
16.2. Отладка конфигураций ....................................................................................................171
16.3. Заключение ...........................................................................................................................173

Сведения об авторе ...........................................................................................................174

Предметный указатель .....................................................................................................175

Предисловие от издательства

Отзывы и пожелания

Мы всегда рады отзывам наших читателей. Расскажите нам, что вы думаете 
об этой книге, – что понравилось или, может быть, не понравилось. Отзывы 
важны для нас, чтобы выпускать книги, которые будут для вас максимально 
полезны.
Вы можете написать отзыв прямо на нашем сайте www.dmkpress.com, зайдя 
на страницу книги, и оставить комментарий в разделе «Отзывы и рецензии». 
Также можно послать письмо главному редактору по адресу dmkpress@gmail.
com, при этом напишите название книги в теме письма.
Если есть тема, в которой вы квалифицированы, и вы заинтересованы в написании новой книги, заполните форму на нашем сайте по адресу  
http://dmkpress.com/authors/publish_book/ или напишите в издательство по ад ресу 
dmkpress@gmail.com.

Список опечаток

Хотя мы приняли все возможные меры для того, чтобы удостовериться в качестве наших текстов, ошибки все равно случаются. Если вы найдете ошибку 
в одной из наших книг – возможно, ошибку в тексте или в коде, – мы будем 
очень благодарны, если вы сообщите нам о ней. Сделав это, вы избавите других 
читателей от расстройств и поможете нам улучшить последующие версии этой 
книги.
Если вы найдете какие-либо ошибки в коде, пожалуйста, сообщите о них 
главному редактору по адресу dmkpress@gmail.com, и мы исправим это в следующих тиражах.

Нарушение авторских прав

Пиратство в интернете по-прежнему остается насущной проблемой. Издательства «ДМК Пресс» и O'Reilly очень серьезно относятся к вопросам защиты 
авторских прав и лицензирования. Если вы столкнетесь в интернете с незаконно выполненной копией любой нашей книги, пожалуйста, сообщите нам адрес 
копии или веб-сайта, чтобы мы могли применить санкции.
Пожалуйста, свяжитесь с нами по адресу электронной почты dmkpress@gmail.
com со ссылкой на подозрительные материалы.
Мы высоко ценим любую помощь по защите наших авторов, помогающую 
предоставлять вам качественные материалы.

Доступ онлайн
599 ₽
В корзину