...

вторник, 25 февраля 2014 г.

[recovery mode] NginX балансировка нагрузки на сервера Apache

Здравствуйте уважаемые хабро население.

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


По ходу работы года два тому назад начали проект, который основывается на HTML+PHP+MSSQL и конечно WEB-часть всего этого работает на известнейшем WEB-сервере Apache. Но со временем нагрузка начала возрастать и пришло время распределения нагрузки между несколькими WEB-серверами. После долгих обсуждений и споров мы пришли к следующему решению. Прошу переключит ваше внимание на следующую схему:


image


Что необходимо для осуществления в реальность нашей схемы:


1) NginX — прокси сервер для балансировки трафика

2) Два сервера Apache


В этой статье мы рассмотрим установку сервера балансировки трафика на основе NginX.

Для этого дела мы выберем операционную систему CentOS 6.4


Наш сервер имеет две сетевые карты одна из которых имеет выход в Интернет, для настройки переходим в нашему интерфейсу.



cd /etc/sysconfig/network-scripts


vi ifcfg-eth0


DEVICE=eth0

HWADDR=00:0C:33:6a:90:F8

TYPE=Ethernet

UUID=de83281a-sa20-4791-b588-5621718adf4d

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=217.11.175.73

NETMASK=255.255.255.224

GATEWAY=217.11.175.33

DNS1=217.11.190.2



Теперь у нас есть Интернет, далее настраиваем локальную сеть



cd /etc/sysconfig/network-scripts


vi ifcfg-eth0


DEVICE=eth1

HWADDR=00:0В:35:6a:90:F3

TYPE=Ethernet

UUID=de83281a-sa10-4791-b577-5621718adf4d

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=static

IPADDR=192.168.1.3

NETMASK=255.255.255.0



Теперь начнем установку и наcтроку нашего прокси сервера для балансировки нашего трафика


---Обновляем пакеты в CentOS



yum update -y




# wget http://ift.tt/1cJSy3m

# rpm -ivh nginx-release-rhel-6-0.el6.ngx.noarch.rpm



— Начинаем установку Nginx



yum install nginx -y



После установки у нас в каталоге



/etc/nginx





появляются файлы конфигурации NginX-а, далее сделаем бекап существующего файла


cp nginx.conf /etc/nginx/nginx.conf.backup





после чего начинаем изменение конфиг файла


rm nginx.conf




vi nginx.conf



Теперь добавляем наш новый конфиг



# пользователь и группа от которого запускается процесс

user nginx;


# 3 рабочих процесса

worker_processes 3;


# Лог для ошибок

error_log /var/log/nginx/error.log debug;


events {

# максимум рабочих соединений

worker_connections 1024;

}


http {


# Подключаем таблицу mime

include mime.types;

# mime-тип по умолчанию

default_type application/octet-stream;

client_header_timeout 3m;

client_body_timeout 3m;

send_timeout 3m;

sendfile on;


# Модуль позволяет описывать группы серверов, которые могут использоваться

# в директивах proxy_pass и fastcgi_pass.

upstream web {

#Этот параметр хеширует сессию по первым 4-м актетам IP-адреса что очень помогает если у кого то используются асинхронные запросы

ip_hash;

# Директива задаёт имя и параметры сервера. Обратите внимание, мы будем

# использовать имя «pv» в директиве proxy_pass

server 192.168.28.8 weight=2; #max_fails=60 fail_timeout=2s;

server 192.168.28.9 weight=2; #max_fails=60 fail_timeout=2s;


}

server {

# Слушать 80 порт

listen 80;

location / {


#Директива proxy_pass о котором говорили ранее

proxy_pass web;

# Подключаем параметры прокси

include /etc/nginx/proxy.conf;


}

}

}



В нашем конфиге мы подключили файл proxy.conf в котором укажем параметры проксирования



proxy_redirect off;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 10m;

client_body_buffer_size 128k;

proxy_connect_timeout 90;

proxy_send_timeout 90;

proxy_read_timeout 90;

proxy_buffers 32 4k;

proxy_cache_bypass http;



Спасибо за внимание.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий