Потребовалась неделя, чтобы понять знания, связанные с nginx, основное содержание:Базовые знания:Быстрое развертывание и установка Nginx, модули, базовый синтаксис конфигурации, вывод журнала Nginx, модуль конфигурации Nginx по умолчанию, Nginx в качестве http-прокси-сервиса, введение в тип прокси-сервиса, настройка прямого и обратного прокси-сервера, nginx в качестве службы балансировки нагрузки на прикладном уровне Различные приложения , стратегия балансировки хеш-нагрузки, кеш Nginx,Продвинутые знания:Часто используемые модули конфигурации Nginx, синтаксис конфигурации и правила перезаписи, настройка правил доступа на основе указанных регионов, принцип реализации модуля geoip и https, настройка службы https nginx, реализация анти-личной ссылки secure_link_module, объясните, объясните разработка синтаксиса Lua, сотрудничество с Nginx, внедрение эффективных систем аутентификации и другие сценарии.
Базовые знания
окрестности
начальная среда
запуск докера
docker run -d -p 8088:80 --name nginx_8088 nginx_80:latest /sbin/init
Четыре подтверждения
Подтвердить системную сеть (ping)
Убедитесь, что yum доступен (список yum | grep gcc
Обязательно закройте iptables (iptables -F)
Подтвердите отключение selinux
Две инсталляции
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
yum -y install wget httpd-tools vim
одна инициализация
cd /opt/ mkdir app download logs work backup
установка нгинкс
Определение источника nginx
cd /etc/yum.repos.d
vim nginx.repo
添加:
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
Установить
yum list | grep nginx
yum install nginx
Посмотреть версию
nginx -v
Просмотр параметров, скомпилированных nginx
nginx -V
запуск nginx
nginx -c /etc/nginx/nginx.conf
Перезапустите службу nginx.
systemctl restart nginx.service
мягкий перезапуск
nginx -s reload -c /etc/nginx/nginx.conf
Проверьте файл конфигурации
nginx -t -c /etc/nginx/nginx.conf
Архитектура промежуточного программного обеспечения
Краткое описание nginx
Nginx — это высокопроизводительное, надежное ПО промежуточного слоя и прокси-сервис с открытым исходным кодом. Nginx (произносится как двигатель x) — это веб-сервер, который также можно использовать в качестве обратного прокси-сервера, балансировщика нагрузки и кэша HTTP. Программное обеспечение было создано Игорем Сысоевым и впервые опубликовано в 2004 году. Одноименная компания была создана в 2011 году для оказания поддержки.
Почему выбирают nginx
io-мультиплексный epoll
Операции ввода-вывода нескольких дескрипторов могут выполняться одновременно и поочередно в потоке в последовательности, которая учит мультиплексированию ввода-вывода, где «мультиплексирование» относится к мультиплексированию одного и того же потока. Реализация мультиплексирования ввода/вывода: select, poll, epoll
что выбрать
модель epoll
Когда FD будет готов, поместите fd между функциями обратного вызова системы, что более эффективно.
Неограниченное максимальное количество подключений
легкий
мало функциональных модулей
модульность кода
привязка к процессору (привязка)
Это метод привязки между ядром ЦП и рабочим процессом nginx.Каждый рабочий процесс фиксируется на одном ЦП для выполнения, что уменьшает промах кеша при переключении ЦП и обеспечивает лучшую производительность.
Проще говоря, это должно уменьшить потери производительности при переключении процессоров.
sendfile
версия nginx
Основная версия Версия для разработки
Стабильная версия
Устаревшая версия Историческая версия
Использование основных параметров
rpm
Команда rpm — это инструмент управления пакетами RPM. Изначально rpm был программой, используемой дистрибутивом Red Hat Linux для управления различными пакетами Linux.Она очень популярна, поскольку следует правилам GPL, является мощной и удобной. Постепенно принимается другими дистрибутивами. Появление метода управления пакетами RPM упрощает установку и обновление Linux, что косвенно повышает применимость Linux.
Указывает количество активных подключений nginx; общее количество рукопожатий, количество обработанных подключений; количество операций чтения, записи и ожидания
http_random_index_module
синтаксис конфигурации
syntax: random_index on | off;
default:random_index off;
context:location
Поместите следующую конфигурацию в default.conf:
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
location ~ ^/admin.html {
root /opt/app/code;
auth_basic "please input you user name and passwd";
auth_basic_user_file /etc/nginx/auth_conf;
index index.html index.htm;
}
контрольная работа
ограничение
Информация о пользователе зависит от метода файла
Механизмы эксплуатации и управления, неэффективность
решение
nginx объединяет LUA для эффективной проверки
Nginx и LDAP подключаются с помощью модуля nginx-auth-ldap
практика сцены
Веб-служба статических ресурсов
статические ресурсы
определение
Несерверные динамически генерируемые файлы
Сценарий службы статических ресурсов — CDN
конфигурация чтения файла
sendfile
syntax: sendfile on | off;
default:sendfile off
context:http,server,location,if in location
Примечание
--with-file-aio асинхронное чтение файлов
tcp_nopush
Функция: при включении sendfile повысить эффективность передачи сетевых пакетов (ожидание, одна передача)
syntax:tcp_nopush on | off
default:tcp_nopush off
context:http, server, location
Противоположно
syntax:tcp_nodelay on | off
default:tcp_nodelay on
context:http, server, location
эффектПри постоянном соединении улучшите производительность передачи сетевых пакетов в реальном времени.
компрессия
эффект
Сжатая передача
syntax:gzip on | off
default:gzip off
context:http, server, if in location
-e: означает ссылку
-i: указывает, что отображаются только заголовки запросов.
Прокси-сервис
Агентские операции от вашего имени (агентское финансовое управление, агентская расписка и т. д.)
Прокси-сервис
прокси разница
Отличие в том, что объекты прокси разные
Объектом прямого прокси является клиент
Обратный прокси-сервер — это сервер
прямой прокси
обратный прокси
конфигурация прокси
syntax: proxy_pass URL;
default: -
context:location, if in location, limit_except
URL-адрес обычно:
http://localhost:8000/uri/
https://192.168.1.1:8000/uri/
http://unix:/tmp/backend.socket:/uri/;
Скриншот конфигурации обратного прокси
Если вы хотите получить доступ к 8080, вы можете получить доступ только к 80. Вы можете получить доступ к 8080 через 80, а затем через обратный прокси-сервер.
Скриншот конфигурации прямого прокси
Конфигурация 116.62.103.228 выглядит следующим образом (на самом деле она не сильно связана с конфигурацией обратного прокси)
Конфигурация клиента
Конфигурация буфера
syntax: proxy_buffering on | off
default: proxy_buffering on
context:location,http,server
GSLB — это аббревиатура от Global Server Load Balance на английском языке, что означает глобальную балансировку нагрузки. Функция: реализовать распределение трафика между серверами в разных регионах глобальной сети (включая Интернет) и обеспечить использование лучшего сервера для обслуживания ближайших к себе клиентов, тем самым обеспечив качество доступа.
SLB
Server Load Balancer (SLB) – это служба балансировки сетевой нагрузки, разработанная для эластичной вычислительной платформы Alibaba Cloud. Облачная платформа эластичной вычислительной платформы полностью учитывается при проектировании системной архитектуры, безопасности, производительности, расширения и совместимости. Характеристики использования сервера и особенности бизнеса сценарии.
Балансировка нагрузки уровня 4
Транспортный уровень (пересылка пакетов) в модели iso
upstream backend {
server backend1.example.com weight=5;
server backend2.example.com:8080;
server unix:/tmp/backend3;
server backup1.exmple.com:8080 backup;
server backup2.example.com:8080 backup;
}
Статус внутреннего сервера при планировании балансировки нагрузки
поле
эффект
down
Текущий сервер временно не участвует в балансировке нагрузки
backup
Зарезервированный резервный сервер
max_fails
Количество раз, когда запрос может быть неудачным
fail_timeout
Время, в течение которого служба приостанавливается после сбоев max_fails.
max_conns
Ограничьте максимальное количество полученных подключений
Скриншот конфигурации
Алгоритм планирования
поле
эффект
голосование
Распространяется на разные внутренние серверы один за другим в хронологическом порядке.
взвешенная круговая система
Чем больше значение веса, тем выше присваиваемая вероятность доступа.
ip_hash
Каждый запрос распределяется в соответствии с результатом хеширования IP-адреса доступа, поэтому фиксированный доступ с одного и того же IP-адреса к внутреннему серверу
least_conn
Минимальное количество ссылок, будет раздаваться машина с меньшим количеством подключений
url_hash
Запрос распределяется в соответствии с результатом хеширования URL-адреса, к которому осуществляется доступ, и каждый URL-адрес направляется на один и тот же внутренний сервер.
значение ключа хеширования
пользовательский ключ хэша
iphash
URL - хэш
синтаксис конфигурации
url_hash
syntax: hash key [consistent];
default:-
context:upstream
this directive appeared in version 1.7.2
Вернитесь к временной переадресации 302, в адресной строке отобразится адрес перенаправления.
permanent
Вернитесь к постоянному перенаправлению 301, в адресной строке будет отображаться адрес перенаправления (браузер будет напрямую обращаться к перенаправленному адресу в следующий раз).
Некоторые примеры
переписать приоритет правила
Выполнить инструкцию перезаписи блока сервера
выполнить сопоставление местоположения
Выполнить перезапись в указанном месте
расширенный модуль nginx
модуль secure_link_module
Сформулировать и разрешить проверку подлинности запрашиваемых ссылок и защиту ресурсов от несанкционированного доступа.
Если вы хотите узнать больше, обратите внимание на мой публичный аккаунт WeChat:Стек томатной технологии, все статьи будут синхронизированы с публичной учетной записью WeChat в первый раз!