CentOS+Nginx+Tomcat создает высокопроизводительный кластер балансировки нагрузки

сервер Nginx Tomcat Эксплуатация и обслуживание Балансировка нагрузки
CentOS+Nginx+Tomcat создает высокопроизводительный кластер балансировки нагрузки

1. Окружающая среда

CentOS6.5

JDK1.7

Nginx1.7.4

2. Подготовка окружающей среды

Сначала установите необходимые инструменты

[html] view plain copy

  1. yum -y install gcc gcc-c++ autoconf automake make  
  2. yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel  

3. Загрузите nginx

nginx.org/ru/download…

слеваLinuxверсия, с версией Windows справа

Или используйте следующую команду в командной строке для загрузки

[html] view plain copy

  1. #wget http://nginx.org/download/nginx-1.7.4.tar.gz  

[html] view plain copy

  1. #tar -zxvf nginx-1.7.4.tar.gz //Извлеките файл:

4. Установка

После распаковки перейдите в каталог nginx-1.7.4.

воплощать в жизнь

[html] view plain copy

  1. ./configure  

Подскажите следующую информацию: ./configure: ошибка: для модуля перезаписи HTTP требуется библиотека PCRE.

You can either disable the module by using --without-http_rewrite_module

option, or install the PCRE library into the system, or build the PCRE library

statically from the source with nginx by using --with-pcre=<path> option.

Необходимо установить pcre, его роль состоит в том, чтобы позволить ngnix поддерживать функцию перезаписи Используйте команду для установки:

[html] view plain copy

  1. yum install pcre-devel.i686  

Введите г, нажмите Enter

Затем подсказка завершена, что указывает на успех.

Выполните ./configure еще раз, и появится та же ошибка; выполните команду, чтобы найти место установки PCRE: file -name pcre Результат: ./auto/lib/pcre

Добавьте параметр для указания Пути в соответствии с запросом и выполните команду: ./configure --with-pcre=./auto/lib/pcre Приглашение выглядит следующим образом: zlib.Вы можете либо отключить модуль с помощью параметра --without-http_gzip_module, либо установить библиотеку zlib в систему или собрать библиотеку zlib статически из исходного кода с помощью nginx, используя параметр --with-zlib=.Также отсутствует информация о библиотеке zlib! Для установки выполните следующую команду: yum -y install make zlib zlib-devel gcc-c++ libtool После успешной установки выполните команду: ./configure --with-pcre=./auto/lib/pcre Окончательная подсказка выглядит следующим образом:

Конфигурация должна пройти успешно, для установки выполните следующую команду: make && make install выдает следующую ошибку:

Я установил все оборудование, но оно все еще не может быть установлено Наконец, выполните следующую команду, чтобы решить проблему: yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel После выполнения выполните: ./configure и выполните: make && make install Установка завершена!

Запомните некоторые из расположений каталогов на изображении выше! Измените файл конфигурации: Переключите каталог: cd /usr/local/nginx/conf Измените файл: vi nginx.conf В основном, чтобы изменить содержимое раздела конфигурации сервера, нажмите букву i, чтобы войти в режим редактирования

Нажмите клавишу ESC, чтобы выйти из режима редактирования, нажмите клавишу с двоеточием «:», чтобы войти в командный режим, введите «wq» и нажмите Enter, сохраните и выйдите; перейдите в каталог sbin: cd /usr/local/nginx/sbin Запустите Nginx:./nginx Откройте порт брандмауэра: /sbin/iptables -I INPUT -p tcp --dport 88 -j ACCEPT /etc/init.d/iptables save Откройте браузер и введите следующий адрес для доступа к нему: http ://IP-адрес вашего сервера: 88 / Видите следующее сообщение?

Примечание. При установке на виртуальную машину я столкнулся с ошибкой, похожей на следующую: ./configure auto/unix: Нет такого файла или каталога. снова меняется. После долгой борьбы я обнаружил, что было много файлов, которые не были разархивированы при разархивировании.Было решено, что сжатый файл установочного пакета был поврежден, поэтому файлов или каталогов при разархивировании было намного меньше, и проблема проблема повторной загрузки декомпрессионной установки была решена. Настройте Nginx для запуска, vi /etc/rc.d/rc.local добавьте «/usr/local/nginx/sbin/nginx» в конец файла Общие команды Nginx: Перезагрузить файлы конфигурации: /usr/local/nginx/sbin/nginx -s reload Остановить службы Nginx: /usr/local/nginx/sbin/nginx -s stop Проблемы с правами доступа к файлам: это может быть связано с каталогом и файлом разрешения Если оно слишком велико, у Nginx нет разрешения на доступ к файлу.Вы можете изменить разрешение с помощью следующей команды: chmod -R 777 ./uploadfile 5. Настройте Nginx+Tomcat и используйте Nginx для реализации обратного прокси-сервера

В это время мы все еще напрямую обращаемся к серверу tomcat.Теперь я хочу получить доступ к tomcat через nginx, то есть войти в localhost, чтобы отобразить нашу демо-страницу. Это требует от нас изменить основной файл конфигурации nginx, файл nginx.conf в папке conf в его каталоге, затем сначала нам нужно понять роль некоторых узлов в этом файле. worker_processes: количество рабочих процессов, можно настроить несколько worker_connections: максимальное количество подключений в одном процессе server: каждый сервер эквивалентен прокси-серверу lister: прослушивающий порт, по умолчанию 80 server_name: доменное имя текущей службы, их может быть несколько, разделенных пробелами (мы локальны, поэтому локальны) location: указывает совпадающий путь, в данный момент сконфигурированный / указывает, что все запросы сопоставляются здесь index: когда домашняя страница не указана, указанный файл будет выбран по умолчанию, но несколько, разделенных пробелом proxy_pass: запрос идет к a custom server List upstream name{ }: После того, как имя кластера серверов знает роль узла, мы знаем часть сервера в файле, который нам нужно изменить.

то, что он посещает, является его приветственной страницей, т.е. index.html

Давайте внесем небольшие изменения в этот код. заключается в пересылке запроса на сервер, который мы определили

Затем введите команду nginx -s reload в cmd, чтобы перезапустить nginx.

После перезапуска мы снова входим на локальный хост и видим, что страница, на которую мы перешли, — это наша демонстрация.

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

6. Реализуйте балансировку нагрузки

Балансировка нагрузки означает, что прокси-сервер сбалансированно распределяет полученные запросы на каждый сервер. Преимущества балансировки нагрузки могут быть не очевидны, когда объем трафика невелик или параллелизм небольшой, не говоря уже об уровне трафика и высоком параллелизме Taobao Double 11 и МПС, спешащих за билетами, то есть когда общий срочная покупка веб-сайта, также даст серверу большую нагрузку и может привести к сбою сервера. И балансировка нагрузки, очевидно, может уменьшить или даже исключить возникновение этой ситуации.Поговорим о методе реализации. Скопируйте проект с tomcat1 на tomcat2 и немного измените текст на странице, чтобы различать, на какой кот распространяется наш запрос. Порт tomcat1 — 8080, а порт tomcat2 — 8081.

Сервер готов, нам нужно определить серверный кластер вне сервера, то есть используется упомянутый выше тег upstream. Кластер серверов называется netitcast.com.

При этом нам нужно снова модифицировать сервер и передать направленный путь к кластеру серверов.

Перезапустите nginx, введите в браузере localhost:88 и обновите несколько раз, вы увидите, что две страницы переключаются туда-сюда.