С помощью существующего протокола единого входа OpenID Connect 1 страница



Www. дмк . рф


ISBN 978-5-97060-790-9

 

 

9 785970 607909


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


 

 

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

 

NGINX.

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

 

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


2019 UPDATE

NGINX Cookbook

 
Advanced Recipes for High Performance

Load Balancing

Derek DeJonghe

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


 

 

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

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

 
балансировки  нагрузки

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

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

 

 

Москва, 2020


 

 
УДК 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


6 v Оглавление                                                                                         

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


Оглавление v 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


 
8 v Оглавление                                                                                         

Глава 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


Дата добавления: 2021-01-21; просмотров: 126; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!