Просто чтобы вы поняли Nginx, этого достаточно!

Java Nginx
Просто чтобы вы поняли Nginx, этого достаточно!

Nginx — это высокопроизводительный HTTP- и обратный прокси-сервер, который характеризуется низким потреблением памяти и мощными возможностями параллелизма.На самом деле, возможности параллелизма Nginx действительно лучше для веб-серверов того же типа.

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

Схема структуры сети знаний Nginx

Схема структуры сети знаний Nginx выглядит следующим образом:

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

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

**Обратный прокси-сервер:** Клиент не может воспринимать прокси-сервер, поскольку клиенту не нужно настраивать сеть для доступа к сети, пока запрос отправляется на обратный прокси-сервер, обратный прокси-сервер выбирает целевой сервер. для получения данных, а затем возвращается на сторону клиента.

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

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

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

Обычный процесс запроса и ответа выглядит следующим образом:

Однако по мере увеличения объема информации объем доступа и данных быстро растет, и обычная архитектура не может удовлетворить текущие потребности.

Наша первая мысль — обновить конфигурацию сервера. Из-за возрастающего нарушения закона Мура постепенно повышать производительность только за счет аппаратного обеспечения становится нецелесообразно. Как решить эту проблему?

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

Графическая балансировка нагрузки:

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

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

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

Состояние до статического и динамического разделения:

После статического и динамического разделения:

Как установить Nginx в Linux

Ссылка на ссылку:

https://blog.csdn.net/yujing1314/article/details/97267369

Посмотреть версию:

./nginx -v

запускать:

./nginx

Закрыть (есть два способа, рекомендуется использовать ./nginx -s quit):

 ./nginx -s stop
 ./nginx -s quit

Перезагрузите конфигурацию Nginx:

./nginx -s reload

Конфигурационный файл Nginx

Файл конфигурации состоит из трех частей:

①Глобальный блок

От начала файла конфигурации до блока событий в основном нужно установить некоторые инструкции по настройке, которые влияют на общую работу сервера Nginx.

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

②блок событий

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

Максимальное количество поддерживаемых подключений:

③ Блокировка HTTP

Здесь настраиваются такие вещи, как обратный прокси-сервер и балансировка нагрузки.

location[ = | ~ | ~* | ^~] url{

}

Описание инструкции местоположения, этот синтаксис используется для сопоставления URL-адреса, синтаксис такой же, как указано выше:

  • **=: **Перед использованием для URL без регулярных выражений строка должна строго совпадать с URL. В случае успешного совпадения поиск вниз будет остановлен и запрос будет обработан.

  • **~:** используется, чтобы указать, что URL-адрес содержит регулярные выражения и чувствителен к регистру.

  • **~*:** используется, чтобы указать, что URL-адрес содержит регулярные выражения и не чувствителен к регистру.

  • **^~:** Прежде чем использовать URL-адреса без регулярных выражений, сервер Nginx должен найти местоположение с наивысшей степенью совпадения между URL-адресом и строкой, а затем использовать это местоположение для немедленной обработки запроса без каких-либо сопоставлений. более.

  • Если есть URL-адреса, содержащие регулярные выражения, нет необходимости начинать с ~.

Битва с обратным прокси

①Настроить обратный прокси

Цель: Ввести адрес в адресную строку браузераwww.123.comПерейти на главную страницу системы Linux Tomcat.

②Конкретная реализация

Сначала настройте Tomcat, потому что это относительно просто, я не буду повторять это здесь, и получите к нему доступ в Windows:

image

Конкретный процесс выглядит следующим образом:

image

Перед модификацией:

image

Конфигурация выглядит следующим образом:

image

Посетите снова:

image

③Обратный прокси 2

Цель:

**Подготовка: **Настройте два Tomcat, порты 8080 и 8081, оба доступны, и порт можно изменить в файле конфигурации.

Добавьте 8080 к новому содержимому файла соответственно! ! ! и 8081! ! !

Ответ выглядит следующим образом:

Конкретная конфигурация выглядит следующим образом:

Перезагрузите Nginx:

./nginx -s reload

доступ:

Реализован тот же прокси порта, и разные страницы отображаются при переключении между путями edu и vod.

Сводка по обратному прокси

**Первый пример:** Доступ через браузерwww.123.com, IP-адрес сервера анализируется из файла хоста 192.168.25.132www.123.com.

Затем получить доступ к порту 80 по умолчанию и проксировать порт 80 на локальный порт 8080 через Nginx, тем самым реализуя доступwww.123.com, и, наконец, перенаправлены на tomcat 8080.

Второй пример:

На самом деле он прослушивает порт 9001 через Nginx, а затем выбирает переадресацию на Tomcat на 8080 или 8081 через регулярные выражения.

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

① Измените nginx.conf, как показано ниже:

② Перезапуск Nginx:

./nginx -s reload

③Создайте новую папку edu и файл .html в папке webapps Tomcat 8081 и заполните содержимое как 8081! ! ! !

④ Нажмите Enter в адресной строке, и он будет распределен по разным серверам Tomcat:

Метод балансировки нагрузки следующий:

  • Опрос (по умолчанию).

  • вес, право представления, чем выше вес, тем выше приоритет.

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

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

Динамическое и статическое разделение реального боя

Что такое динамическое разделение? Разделение динамических и статических запросов не связано с физическим разделением динамических страниц и статических страниц, можно понять, что Nginx обрабатывает статические страницы, а Tomcat обрабатывает динамические страницы.

Статическое и динамическое разделение можно условно разделить на два типа:

  • Чистое разделение статических файлов на отдельные доменные имена и размещение их на отдельных серверах также является распространенным решением.

  • Публикуйте динамические и статические файлы вместе и разделяйте их через Nginx.

Диаграмма динамического и статического разделения:

Подготовьтесь к реальному бою, подготовьте статические файлы:

Настройте Nginx, как показано ниже:

Высокая доступность Nginx

Если есть проблема с Nginx:

Решение:

Предварительная подготовка:

  • Два сервера Nginx

  • Установить Keepalived

  • Виртуальный IP.

Установите Keepalive:

[root@192 usr]# yum install keepalived -y
[root@192 usr]# rpm -q -a keepalived
keepalived-1.3.5-16.el7.x86_64

Измените файл конфигурации:

[root@192 keepalived]# cd /etc/keepalived
[root@192 keepalived]# vi keepalived.conf

Скопируйте и вставьте следующие файлы конфигурации, перезапишите keepalived.conf и установите виртуальный IP-адрес на 192.168.25.50.

Соответствующий IP-адрес хоста необходимо изменить:

  • smtp_server 192.168.25.147 (основной) smtp_server 192.168.25.147 (резервный)

  • состояние MASTER (основной) состояние BACKUP (резервный)

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.25.147
   smtp_connect_timeout 30
   router_id LVS_DEVEL # 访问的主机地址
}

vrrp_script chk_nginx {
  script "/usr/local/src/nginx_check.sh"  # 检测文件的地址
  interval 2   # 检测脚本执行的间隔
  weight 2   # 权重
}

vrrp_instance VI_1 {
    state BACKUP    # 主机MASTER、备机BACKUP    
    interface ens33   # 网卡
    virtual_router_id 51 # 同一组需一致
    priority 90  # 访问优先级,主机值较大,备机较小
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.25.50  # 虚拟ip
    }
}

Код запуска выглядит следующим образом:

[root@192 sbin]# systemctl start keepalived.service

Успешный доступ к виртуальному IP:

Выключите Nginx и Keepalived на хосте 147 и убедитесь, что он все еще доступен.

Принципиальный анализ

Как показано на рисунке ниже, запускаются мастер и воркер, мастер — это администратор, а воркер — это конкретный рабочий процесс.

Как работают рабочие? Как показано ниже:

резюме

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

Автор: становится теплее Связь:blog.CSDN.net/Предупреждение 1314/…

Из: CSDN

наконец

Друзья, которым понравилась статья, могут поставить палец вверх~, наконец, как обычно, у Amway есть волна нашего публичного аккаунта: «Отдел исследований и разработок терминала». -сопутствующие технологии и интервью Советы, изучайте Java, не заблудившись.