Настройка связки nginx+apache на сервере под управлением directadmin

Установка nginx

Качаем последнюю стабильную версию nginx с официального сайта  http://nginx.org/ru/download.html

wget http://nginx.org/download/nginx-1.2.6.tar.gz
tar xzf nginx-1.2.6.tar.gz
cd nginx-1.2.6

Конфигурируем со следующими опциями, опции можете изменить на свое усмотрение, и устанавливаем:

./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/etc/nginx.conf --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --user=apache --group=apache --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_stub_status_module
make
make install

Добавляем сервис nginx.

wget -O /etc/init.d/nginx http://unixblog.in.ua/files/nginx/nginx

Правим конфигурационный файл nginx-а, указываем что бы он слушал 85-й порт. Или можете скачать готовый конфиг.

wget http://unixblog.in.ua/files/nginx/nginx.conf

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

touch /usr/local/nginx/etc/virtual.conf

Что бы корректно отображались картинки в phpMyAdmin, создадим симлинк:

ln -s /var/www/html/phpMyAdmin /var/www/html/phpmyadmin

Все настройка nginx-а закончена.
Установка плагина

Скачиваем, распаковываем и заходим в папку установки:

wget http://unixblog.in.ua/files/nginx/nginx_plugin.tar.gz
tar -xzvf nginx_plugin.tar.gz
cd nginx_plugin
./install

Все, установка завершена, выполняем создание конфигурационных файлов для ранее созданных пользователей

/usr/local/directadmin/scripts/nginx_direct.sh all
/etc/init.d/nginx start

Запускаем nginx (если он запустился самостоятельно, делаем restart).

service nginx restart

Теперь нужно добавить nginx в автозагрузку и прописать правила iptables, для проброса портов:

chkconfig --add nginx
iptables -t nat -A PREROUTING -d xxx.xxx.xxx.xxx -p tcp -m tcp --dport 80 -j DNAT --to-destination xxx.xxx.xxx.xxx:85
iptables-save > /etc/sysconfig/iptables

Установка связки завершена.

Еще нужно будет прикрутить mod_rpaf к apache, для этого можно воспользоваться инструкцией Установка mod_rpaf.

Немного о плагине.

Шаблоны конфигурационных файлов nginx, находится в папке /usr/local/directadmin/data/templates/custom.
Так же есть возможно создавать отдельный конфиг файлы nginx-а для определённого домена. Для этого нужно создать файл: /usr/local/directadmin/data/users/USERNAME/domains/DOMAIN_NAME.custom_nginx, в нем создать виртуальный хост с нужными настройками и переписать конфигурационный файл для пользователя:

/usr/local/directadmin/scripts/nginx_direct.sh -u username

Что бы переписать конфигурационные файлы для всех пользователей, нужно запустить скрипт с параметром “all”

/usr/local/directadmin/scripts/nginx_direct.sh all

Если nginx при рестарте выдает массово [warn]: conflicting server name, значит какой-то из доменов в конфиге встречается несколько раз.

Решение проблемы:

1) Чистим все конфиги от данного домена(/usr/local/directadmin/data/users/USERNAME/nginx.conf /usr/local/nginx/etc/virtual.conf)
2) Массово пересоздаем конфигурационные файлы

find /usr/local/directadmin/data/users/*/ -name nginx.conf -print | tar czf /root/nginxusersconf.tar.gz -T -
find /usr/local/directadmin/data/users/*/ -name nginx.conf -delete
rm -f /usr/local/nginx/etc/virtual.conf
touch /usr/local/nginx/etc/virtual.conf
/usr/local/directadmin/scripts/nginx_direct.sh all

Опубликовано в nginx

Рубрики