Добро пожаловать на форум, Гость!
Войдите или зарегистрируйтесь!
Имя пользователя:   Пароль:  
Запомнить меня 




Начать новую тему Ответить на тему   [ 1 сообщение ] 
Автор Сообщение
СообщениеДобавлено: 19 авг 2011, 14:54 
Бородатый сис
Аватар пользователя
Статус: Не в сети

GeoIP: Kyrgyzstan

Сообщений: 2898
Откуда: Из серверной
Зарегистрирован: 03 мар 2010, 15:12
Благодарил (а): 19 раз.
Поблагодарили: 121 раз.
ОС: RHEL 6.7
Предположим у нас есть установленые серверы lighttpd на 2-х машинах, черпающие контент с общего накопителя (iSCSI|FibreChannel-storage или с устройства DRBD) и нам нужно организовать распределение нагрузки на эти сервера. Скажем наша испытуемая машина имеет IP 192.168.0.1, бэкенды висят на адресах 192.168.0.2 и 192.168.0.3 В данном примере я расскажу как это можно очень быстро организовать с помощью веб-сервера lighttpd-2.0.0 (о том как это делается в nginx пестрит весь интернет, но об этом, как и о том как настроить это на lighttpd-1.4.x я расскажу в другой раз) на примере операционки Oracle Enterprise Linux (то же что и RHEL, то же что и КопейкОС).

Итак, скачиваем снепшот (с официального зеркала или с нашего - не важно, и там и тут последние версии имеются), распаковываем его и собираем:

Код:
# wget http://lighttpd.sysadmins.el.kg/lighttpd/snapshots-2.0.x/lighttpd-2.0.0-snap-20110509-g259cdb.tar.gz
#tar -xvf lighttpd-2.0.0-snap-20110509-g259cdb.tar.gz
#cd lighttpd-2.0.0-snap-20110509-g259cdb/lighttpd-2.0.0
#./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --target=x86_64-redhat-linux-gnu --program-prefix= --prefix=/usr/local --exec-prefix=/usr/local --bindir=/usr/local/bin --sbindir=/usr/local/sbin --sysconfdir=/usr/local/etc --datadir=/usr/local/share --includedir=/usr/local/include --libdir=/usr/local/lib64 --libexecdir=/usr/local/libexec --localstatedir=/usr/local/lighttpd --sharedstatedir=/usr/local/lighttpd/lib --mandir=/usr/local/share/man --infodir=/usr/local/share/info --libdir=/usr/local/lib64/lighttpd
(У меня x64 архитектура, я задал префикс /usr/local, дабы не создавать каши в структуре. Кстати, lighttpd2 требует пакет ragel, установить его можно так
#rpm -Uvh http://elders.princeton.edu/data/puias/unsupported/6/x86_64/ragel-6.6-2.puias6.x86_64.rpm)
#make && make install


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

В /usr/local/etc создаем файл angel.conf следующего содержания:
Код:
instance {
        user "lighttpd"; # Пользователь от которого все это дело запускаем
        max-open-files 16384; # Лимит файлов
        binary "/usr/local/libexec/lighttpd2/lighttpd2-worker"; # Путь к файлу воркера
        config "/usr/local/etc/lighttpd.conf"; # Путь к сонфигу воркера
        modules "/usr/local/lib64/lighttpd/lighttpd-2.0.0"; # Путь в папку с модулями

        copy-env ( "PATH" );

#       env ( "G_SLICE=always-malloc", "G_DEBUG=gc-friendly" );
#       wrapper ("/usr/bin/valgrind", "--leak-check=full", "--show-reachable=yes", "--leak-resolution=high" );
}


и файл lighttpd.conf
Код:
setup {

# Рассказываем ему какие модули подтягивать
        module_load (
                "mod_accesslog",
                "mod_balance",
                "mod_proxy"
        );
# Обьясняем что слушать
        listen "0.0.0.0:80";
        listen "[::]:80";
# Ну, с логами думаю все понятно
        log = ["debug": "", "*": "/usr/local/var/error.log"];
        accesslog = "/usr/local/var/access.log";
        accesslog.format = "%h %V %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"";

# Файл mimetypes.conf по дефолту лежит в папке с исходниками, копировать придется вручную
        include "/usr/local/etc/mimetypes.conf";
        static.exclude_extensions = ( ".php", ".pl", ".fcgi", "~", ".inc" );


}

# Собственно сам балансир. Пока существует 2 вида балансировки - balance.rr (RoundRobin, то есть тупо разброс запросов на бекенды) и balanse.sqf (формирование очереди запросов на каждый сервер), какой из них будет удобен вам - решать только вам.
balance.sqf (
        ${ proxy "192.168.50.3:80"; }, # Бэкенд №1
        ${ proxy "192.168.50.2:80"; }  # Бэкенд №2
);


Вот собственно и все. Остается стартануть сервер командой:
Код:
#/usr/local/sbin/lighttpd2 -c /usr/local/etc/angel.conf

Ну и при желании написать init-скрипт))).

Теперь при обращении на IP 192.168.0.1 вы будете попеременно попадать то на 192.168.0.2, то на 192.168.0.3

P.S. Чуть не забыл - директории под логи и прочую муть имеющуюся в конфиге придется создать тоже ручками))).


Я не злопамятный, я просто часто ковыряю логи
Изображение


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ 1 сообщение ] 
   Похожие темы   Автор   Ответов   Просмотров   Последнее сообщение 
Перенесенная ^_^

в форуме Linux

root

3

38

02 мар 2010, 16:15

Gen1us2k Перейти к последнему сообщению

Перенесенная Документация по Gentoo

в форуме Linux

Gen1us2k

0

4

05 мар 2010, 18:54

Gen1us2k Перейти к последнему сообщению



Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Собрано Raven. Русская поддержка phpBB
phpBB SEO