Go to content Go to menu

дружим ispCP + nginx

16 Январь 2012, 19:22

Итак, я решил поставbть себе хостинг-панель ispCP на Debian Squeeze. Как я это делал рассписывать не буду в рунете полно документации на этот счет, я лишь опишу как добавил поддержку nginx этой панелью.  Тут я стану развивать тему взятую с форума ispCP о добавлении на "фронт" nginx - вот URL: http://isp-control.net/forum/thread-8322.html . За основу была взята статья и скрипт Nikolay Yatsyshyn (koffua[@]gmail.com)  - вот URL на статью автора: http://isp-control.net/documentation/ru/scripte/nginx_module/installation

 

В чем состоит задача:

1. Перенести апач на порт 8181

2. Настроить nginx

3. Заставить nginx вести корректные логи

4. Добавить автоматическую генерацию conf файлов nginx при изменении\добавлении\удалении доменов\алиасов\субдоменов.

 

1. Переходим в /etc/ispcp/apache и во всех абсолютно файлах заменяем любое упоминание порта 80 на нужный нам - 8181.

Далее ищем в файле /etc/init.d/ispcp_network строку SERVICES= и добавляем в нее наш порт 8181 и рестартим службы

# /etc/init.d/ispcp_network restart

# /etc/init.d/apache2 restart

проверяем что apache висит на нужном нам порту, не занимает 80 и доступен по порту 8181:

# netstst -pan | grep LISTEN

# lynx 10.0.0.1:8181

Здесь 10.0.0.1 - ip-адрес сервера в сети (у вас он наверняка отличается).

Также в файле /etc/apache2/apache2.conf добавлем строчку LISTEN 127.0.0.1:80

Это нужно для того, чтобы корректно отрабатывалась статистика awstats.

 

2. Устанавливаем nginx из репозитория:

# apt-get install nginx

удаляем файл:

# rm -f /etc/nginx/sites-enabled/default

Качаем модифицированный мною скрипт Николая (см. выше) - вот URL: http://it-korolkov.ru/blog/files/ispcp-nginx.tar.gz, - и распаковываем в /etc/nginx. Открываем файл ispcp-nginx.conf и правим параметры (адрес, пароль на БД) под себя.

После этих процедур создаём пользователя в MySQL базе:

# mysql -u root -p ispcp

>USE ispcp

>grant select on ispcp.domain to 'nginx'@'localhost' identified by 'пароль из ispcp-nginx.conf';

>grant select on ispcp.subdomain to 'nginx'@'localhost' identified by 'пароль из ispcp-nginx.conf';

>grant select on ispcp.domain_aliasses to 'nginx'@'localhost' identified by 'пароль из ispcp-nginx.conf';

>exit

Далее в БД ispcp в таблице config добавляем строку PORT_NGINX со значением 80;tcp;NGINX;1;1;10.0.0.1
и заменем значение строки PORT_HTTP на 8181;tcp;HTTP;1;0;10.0.0.1
Это делать не обязательно, сие позволяет корректно в даминке отображать статусы сервисов и их порты. Да, и опять таки напоминаю, что 10.0.0.1 - это мой ip сервера, - замените на свой.

Теперь запускаме скрипт
# ./ispcp-nginx.pl
Если все ок, то рестартим сервисы и проверяем как все работает.
# /etc/init.d/nginx restart
# /etc/init.d/ispcp_daemon restart
Убеждаемся, что nginx проксирует запросы на апач, при этом сам отдавая статику.

3. Скрип Николая не позволяет корреткно панельки вести логирование и считать трафик. В моем скрипте на уровне я добавил сроки для ведения логирования на уровне nginx. Но чтобы запросы не дублировались и в логах апача, в нем надо отключить логирование. Т.е. все логи будет вести один nginx. Для этого переходим в /etc/ispcp/apache и во всех абсолютно файлах там комментируем строки, если таковые встречаются:

CustomLog "||/var/www/ispcp/engine/ispcp-apache-logger" ispcplog
ErrorLog "||/var/www/ispcp/engine/ispcp-apache-logger -t error"

Так же делаем это и для всех текущих конфигов в /etc/apache2 и перезагружаем апач:

# /etc/init.d/apache2 retsart

Это поможет не терять нужную нам статистику и логи на уровне nginx. Здесь надо бы еще понаблюдать и посчитать, коректно ли все пишет, например трафик. Если кто найдет косяки - пишите в коменты - будем решать.

 

4. Чтобы изменния применялись сразу и для nginx, достаточно в скрипт построения конфигов апача для доменов и алиасов добавить нужные строчки. Открываем файл для редактирования:

# nano /var/www/ispcp/engine/ispcp-serv-mngr

Находим в нем процедуру sub restart_httpd и в конце между строками

        $rs;
}
дописываем свою: system('/etc/nginx/ispcp-nginx.pl');

 

Ну вот и все. Всем приятных будней)

2 Ответа(ов) на "дружим ispCP + nginx"

  1. Андрей Says:

    netstst -pan | grep LISTEN

    NETSTAT (у Вас небольшая опечатка)

  2. Александр Says:

    Спасибо за замечание

Leave A Reply

Помощь по Textile