понедельник, 18 февраля 2013 г.

ispmanager: избавляемся от /manager для всех доменов

http://forum.ispsystem.com/ru/showthread.php?t=19608

Так как данная настройка в ISPmanager, в общем то, не работает, а лишь вызывает те или иные проблемы, у себя я решил все переделать вручную.
Выкладываю здесь, возможно кому то еще пригодится данный подход.

Apache-itk+nginx
И так задача:
Отключить ihttpd
SSL отдать apache
Сделать панель доступной только по следующим адресам и алиасам на одном домене:
https://cp.domain.ru
https://cp.domain.ru/manager
https://cp.domain.ru/manager/
https://cp.domain.ru/manager/ispmgr
https://cp.domain.ru/manager/ispmgr/
И теже адреса http://-----//-----, но с редиректом на https://

Со всех остальных доменов на сервере убираем доступ к панели, webmail и myadmin

Часть конфига apache:
Код:
# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/

Include /usr/local/ispmgr/etc/ispmgr.inc
Include /etc/apache2/vhosts/*.inc
<Directory /var/www/*/data/>
        php_admin_flag engine off
</Directory>

NameVirtualHost 123.123.123.123:443
NameVirtualHost 123.123.123.123:81
Если в конфиге есть описание дефолтного ssl-хоста, то убираем его.

В конфигах apache для roundcube и phpmyadmin убираем алиасы и оставляем только описание директрий.
В конфиге nginx ничего не меняем.

Далее вид конфигов панели:
ispmgr.inc
Код:
LoadModule ispmgr_module /usr/local/ispmgr/lib/apache/mod_ispmgr.so

Alias /manimg/ /usr/local/ispmgr/skins/
Alias /disabled/ /usr/local/ispmgr/www/disabled/
Alias /mancgi/ /usr/local/ispmgr/cgi/

<Directory /usr/local/ispmgr/>
        Order allow,deny
        Allow from all
        AddDefaultCharset utf-8
</Directory>

<Directory /usr/local/ispmgr/cgi/>
        SetHandler directcgi-handler
        AddDefaultCharset utf-8
</Directory>

<Directory /usr/local/ispmgr/bin/>
        SetHandler ispwrap-handler
        AddDefaultCharset utf-8
        DirectoryIndex ispmgr billmgr vdsmgr dsmgr dnsmgr ipmgr
</Directory>

<IfModule mod_ssl.c>
<VirtualHost 123.123.123.123:443>
        ServerName cp.domain.ru
        DocumentRoot /usr/local/ispmgr/bin/
        SSLCertificateFile /usr/local/ispmgr/etc/manager.crt
        SSLCertificateKeyFile /usr/local/ispmgr/etc/manager.key
        SSLCACertificateFile /usr/local/ispmgr/etc/manager.bundle
        SSLEngine on
        Alias /manager /usr/local/ispmgr/bin/
        Alias /manimg/ /usr/local/ispmgr/skins/
        Alias /mancgi/ /usr/local/ispmgr/cgi/
        Alias /myadmin /var/www/phpmyadmin/
        Alias /webmail /var/www/roundcube/
        Redirect permanent /manager/ispmgr/ /manager/ispmgr
</VirtualHost>
</IfModule>
nginx.domain
Код:
server {
    listen       123.123.123.123;
    server_name  cp.domain.ru;
    if ( $scheme = "http" ) {
              rewrite ^/(.*)$   https://$host/$1 permanent;
        }
}
nginx.inc тут всё комментируем.

Не забудем в добавить в ispmg.conf
Option WebNginxNoSSL
И если используете опцию NgProxyRegexp, то уберите из ее шаблона webmail и myadmin
И не забудем включить в apache mod_ssl, если не включен.

Вот собственно и всё. А про пункт в меняю "Адрес панели" забываем.))

З.Ы. Один из основных косяков был в том, что если мы хотим переложить обработку SSL обратно на apache, а в настройках адреса панели укажем выделенный домен, то в конфигах зачем то добавляется ngix-хост с SSL и соответственно имеем конфликты, ведь apache тоже слушает 443 порт.
Но это уже не важно, для себя я всё переделал, но по идее разработчики должны были. Коли уж сделали эту опцию, то допилили бы ее до конца по человечески или не трогали вообще и оставили всё как было раньше, с возможность отключения панели для определенного домена.

Комментариев нет:

Отправить комментарий