Springboot интегрирует Nginx для реализации обратного прокси-сервера с балансировкой нагрузки.

Java задняя часть
Springboot интегрирует Nginx для реализации обратного прокси-сервера с балансировкой нагрузки.

«Это шестой день моего участия в первом испытании обновлений 2022 года. Подробную информацию о мероприятии см.:Вызов первого обновления 2022 г.".

1. Энциклопедия Байду

Nginx — это высокопроизводительный веб-сервер HTTP и обратный прокси-сервер, который также предоставляет услуги IMAP/POP3/SMTP. Nginx был разработан Игорем Сейсуевым для второго по посещаемости сайта в России Rambler.ru, а первая общедоступная версия 0.1.0 была выпущена 4 октября 2004 года.

Он выпускает исходный код под лицензией, подобной BSD, и известен своей стабильностью, богатым набором функций, простыми файлами конфигурации и низким потреблением системных ресурсов.

Nginx — это легкий веб-сервер и прокси-сервер электронной почты (IMAP/POP3), выпущенный по протоколу, подобному BSD. Его характеристики заключаются в том, что он занимает меньше памяти и обладает сильными возможностями параллелизма.На самом деле возможности параллелизма Nginx лучше среди веб-серверов того же типа.Пользователями веб-сайтов Nginx в материковом Китае являются: Ali, Baidu, Jingdong, Sina, Netease , Тенсент и др.

2. Nginx как веб-сервер

Nginx может использоваться как веб-сервер для статических страниц, а также предоставляет динамические языки протокола CGI, такие как perl, php и т. д. Но джава не поддерживается. Java можно сделать, только работая с tomcat. Nginx специально разработан для оптимизации производительности. Производительность является наиболее важным фактором. Реализация уделяет большое внимание эффективности и может выдерживать высокие нагрузки последипломных экзаменов. Согласно отчетам, он может поддерживать до 50 000 одновременных подключений.

3. Логическая схема обработки запроса Nginx

1.png

В-четвертых, преимущества Nginx

  1. Возможно большое количество одновременных подключений;
  2. меньше потребление памяти;
  3. бюджетный;
  4. Файл конфигурации очень прост;
  5. Поддержка перезаписи (можно разделить HTTP-запросы на разные группы внутренних серверов в соответствии с разными доменными именами и URL-адресами);
  6. Встроенная функция проверки работоспособности;
  7. Экономия полосы пропускания (поддержка сжатия GZIP, вы можете добавлять заголовки, кэшированные браузером локально);
  8. Высокая стабильность (для обратного прокси вероятность простоя минимальна);
  9. Поддержка горячего развертывания;

Пять, сценарии применения Nginx

Введение в форвардных агентов

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

2.png

1. Обратный прокси

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

3.png

2. Балансировка нагрузки

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

4.png

3. Динамическое и статическое разделение

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

5.png

6. Общие команды Nginx

1. Старт

Формат запуска кода запуска: Установка NGINX Адрес Address - C NGINX Адрес конфигурации

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

2. Спокойно остановитесь

(1) Просмотрите номер процесса

ps -ef|grep nginx (2) Убить процесс

kill -QUIT 2072

3. Быстрая остановка

(1) Просмотрите номер процесса

ps -ef|grep nginx (2) Убить процесс

kill -TERM 2132

4. Принудительная остановка

pkill -9 nginx

5. Перезапустите

(1) Убедитесь, что файл конфигурации nginx верен.

Способ 1. Войдите в каталог установки nginx sbin и введите команду ./nginx -t

См. следующее отображение синтаксиса nginx.conf в порядке.

nginx.conf test is successful

Способ 2: добавьте -t перед командой запуска -c

/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

6. Перезапустите службу Nginx.

Способ 1. Войдите в исполняемый каталог nginx sbin и введите команду ./nginx -s reload

Способ 2. Найдите текущий номер процесса nginx, а затем введите команду: kill -HUP номер процесса, чтобы перезапустить службу nginx.

Семь, файл конфигурации Nginx

1. Найдите расположение файла конфигурации:

cd /usr/local/nginx/conf/nginx.conf

2, содержимое файла конфигурации

  1. Глобальный блок: инструкции по настройке общей работы сервера, такие как worker_processes 1, конфигурация для обработки параллелизма;
  2. блок событий: влияет на сетевое соединение между сервером Nginx и пользователем, например, worker_connections 1024, максимальное количество поддерживаемых соединений — 1024;
  3. Блок http также состоит из двух частей: серверный блок http global block;

Восемь, пример конфигурации Nginx — пример обратного прокси

1. Осознайте эффект

Откройте браузер и введите адрес в адресную строку браузераwww.123.com, перейти наГлавная страница системы Linux tomcat

2. Подготовка

  1. Установите tomcat в системе liunx, используйте порт по умолчанию 8080 * установочный файл tomcat в системе liunx, распакуйте * в каталог bin tomcat, ./startup.sh для запуска сервера tomcat
  2. Порты, открытые для внешнего мира firewall-cmd --add-port=8080/tcp --permanent firewall-cmd --reload Просмотр открытых номеров портов firewall-cmd --list-all
  3. Доступ к серверу tomcat через браузер в системе Windows

3. Анализ процесса доступа

6.png

4. Конкретная конфигурация Первым шагом является настройка соответствующей связи между доменным именем и ip в файле хоста системы Windows.

(1) Добавьте содержимое в файле хоста

192.168.17.129 www.123.com

Второй шаг — настроить переадресацию запросов в nginx (настройка обратного прокси)

server{
	listen:80;
	server_name 192.168.100.1;
	location / {
		root html;
		proxy pass http://127.0.0.1:8080;
		index index.html index.htm;
	}
}

5. Заключительный тест

7.png

Девять, принцип Nginx

1. мастер и работник

8.png

2. Как работают работники

9.png

3. Один мастер и несколько рабочих выгодны

  1. Вы можете использовать nginx –s reload для горячего развертывания и использовать nginx для горячего развертывания;
  2. Каждый рабочий процесс является независимым процессом.Если возникает проблема с одним из рабочих процессов, другие рабочие процессы независимы и продолжают конкурировать за выполнение процесса запроса, не вызывая прерывания обслуживания.

4. Сколько рабочих мест подходит для установки

Наиболее целесообразно иметь такое же количество рабочих, как и количество ЦП на сервере.

5. Количество подключений worker_connection

Первый: Сколько подключений вокера занято отправкой запроса? Ответ: 2 или 4;

Второй: у nginx один мастер и четыре воркера, каждый воркер поддерживает максимальное количество подключений 1024, какое максимальное количество поддерживаемых одновременных подключений?

Максимальное одновременное количество обычного статического доступа: Worker_Connections * Worker_Processes / 2;

И если HTTP используется в качестве обратного прокси,

Максимальное число одновременных действий должно быть worker_connections * worker_processes/4;