Цель:
— Установить связку nginx frontend (отдача статики) + apache22 (+php52) backend (обработка php)
— Вернуть в логи apache реальный ip-адрес запроса, а не ip-адрес nginx.
1) Устанавливаем nginx
|
Появится окно выбора нужных опций. Я убираю использование протокола Ipv6 и нажимаю Ок:
2) Устанавливаем apache22 и php52 если они не установлены.
Детальная установка описана в статье — Установка веб-сервера apache22+php52
Далее:
Во всех, используемых у Вас, конфигах apache и виртуалхостов, меняем порт прослушивания c 80 на 88:
httpd.conf:
|
httpd-vhosts.conf:
|
soulbrat.org.ua.conf:
|
3) Ставим mod_rpaf для решения проблемы определения рального IP для apache
|
После установки идем в:
|
находим строку:
|
и раскоментируем её.
|
Если, при перезапуске апача у Вас возникает ошибка «Can’t locate API module structure `rpaf2_module’ in file /usr/local/libexec/apache22/mod_rpaf2.so»
Проверте, что бы название модуля rpaf_module — было без цифры «2″ . Этот баг исправили в новой версии модуля.
В конце файла httpd.conf, добавляем следующие строки:
|
сохраняем httpd.conf и закрываем.
4) Сохраняем с другим именем созданный конфиг nginx.conf и создаем свой:
|
создаем свой конфиг:
|
|
Создаем необходимые каталоги:
|
Добавляем nginx в автозапуск:
|
Теперь необходимо создать нужные виртуалхосты, все которые прописаны в apache. Создадим один, по этому примеру создаются и остальные:
|
|
Если вы прописали использование фильтров default accept_filter=httpready
необходимо включить их в ядро командами:
|
Проверяем:
|
Что бы модули грузили автоматически, при перезагрузке системы, пропишите запуск в файл loader.conf:
|
|
Теперь все готово к запуску.
Перезагружаем apache и запускаем nginx:
|
|
Если все запустилось без ошибок,значит все найстроки прописаны верно. Можете проверяь работу вашего сайта на новой связке nginx (frontend) + apache (backend)
=================
Несколько советов по работе с алиасами nginx:
=================
Конструкция алиаса:
|
просто отдаст запрос апачу на алиас phpmyadmin, используя адрес локалхоста. Если вам необходимо передавать в заголовке имя, передаваемое к проксируемому серверу, пропишите так:
|
Еще пример, если для сбора статистики вы используете awstats, конструкция выглядит так:
location ^~
/awstatsicons
{
alias
/usr/www/soulbrat
.org.ua
/awstats/icons/
;
access_log off;
}
location ^~
/awstatscss
{
alias
/usr/www/soulbrat
.org.ua
/awstats/css/
;
access_log off;
}
location ^~
/awstatsclasses
{
alias
/usr/www/soulbrat
.org.ua
/awstats/classes/
;
access_log off;
}
По материалам: soulbrat.org.ua/?p=971