Прикручиваем nginx к Plesk-панели на CentOS.
Все по разному пытаются прикрутить nginx к контрольной панели Plesk. Не всегда все работает так, как хотелось бы. За долгое время, опробовав много разных вариантов, остановился на одном из них. Возможно вариант и не самый лучший, но лучший из того что я пробывал. Есть свои определенные минусы, например, после создания/удаления/переименования домена, необходимо запустить скрипт конфигурации nginx через шел, не работает AtMail, хотя Horde работает без проблем.
Первым долгом установим nginx:
# cat > /etc/yum.repos.d/nginx.repo << EOF
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/
gpgcheck=0
enabled=1
EOF
# yum install nginx
Далее скачиваем файл по следующей ссылке nginx_plesk.zip.
Распаковываем его в /etc/nginx/plesk
Копируем файлы конфигурации:
# cp /etc/nginx/plesk/nginx.conf /etc/nginx/
# cp /etc/nginx/plesk/proxy.conf /etc/nginx/
идем в /etc/nginx/plesk/
# cd /etc/nginx/plesk/
и запускаем конфигуратор
# sh generate_nginx_conf.sh
данный срипт создаст файлы конфигурации для nginx в папках /var/www/vhosts/DOMAIN/conf/nginx.conf
Следующим шагом меняем порт apache на 8080 следующим образом:
# /usr/local/psa/admin/sbin/websrvmng --set-http-port --port=8080
# /usr/local/psa/admin/sbin/websrvmng --reconfigure-all
# /usr/local/psa/admin/sbin/webmailmng --disable --name=horde
# /usr/local/psa/admin/sbin/webmailmng --enable --name=horde
# /usr/local/psa/admin/sbin/webmailmng --disable --name=atmail
# /usr/local/psa/admin/sbin/webmailmng --enable --name=atmail
Если сделать это руками в конфигах самого апача, то Plesk все вернет обратно, так что меняем именно так, как я описал выше. После этого апачь будет слушать на порту 8080, если не хотите чтоб можно было заходить напрямую, закройте этот порт на файрволе.
рестартуем apache и nginx:
# service httpd restart
# service nginx restart
Проверяем работу.
При каждом добавление/изменении домена, алиаса к нему, либо сабдомена, необходимо заного запускать:
# sh generate_nginx_conf.sh
в папке /etc/nginx/plesk/
При необходимости прикручиваем mod_rpaf, чтобы в логах apache были реальные IP-адреса, а не адрес самого сервера:
# yum install httpd-devel
# cd /usr/local/src
# wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
# tar xzvf mod_rpaf-0.6.tar.gz
# cd mod_rpaf-0.6
# apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
Редактируем /etc/httpd/conf/httpd.conf , добавляя в секцию где вызываются модули
LoadModule rpaf_module modules/mod_rpaf-2.0.so
и в конец файла
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 IP_ADDRESS_OF_YOUR_SERVER
RPAFheader X-Forwarded-For
Перезапускаем apache
# /etc/init.d/httpd restart
Как я уже заметил выше, почему-то не работает веб-морда почты AtMail, хотя Horde прекрасно работает.
И еще, этот вариант подходит именно для своего сервера, не для клиентов. В случае если Вы часто меняете/добавляете домены — это не лучший выбор. Хотя можно делать по крону проверку на изменение/добавление доменов, и запускать данный скрипт автоматом. Думаю, прикрутить такой к работающему серверу не составит труда. Тем более наработки на проверку изменений у меня прекрасно описаны здесь.
Удачи в настройках.
© shadow_alone