Минималистичная система управления виртуальными хостами. Написана на Django.
Нужно создать пользователя, из-под которого будет запускаться WSGI-процесс.
Этому пользователю нужно дать права на перезагрузку apache и nginx,
создание пользователей, и еще несколько операций (через /etc/sudoers):
Пример выдачи прав в /etc/sudoers:
web ALL=(root, web) NOPASSWD:/etc/init.d/apache2 reload, /etc/init.d/nginx reload, /usr/sbin/useradd, /usr/sbin/userdel, /bin/ln, /bin/mkdir, /bin/chmod, /bin/chown, /usr/bin/unlink
Важно, чтобы при выполнении этих действий из-под sudo не выполнялся запрос пароля.
Пример конфигурации Apache для запуска HostManager:
VirtualHost *:81>
ServerName manager.myhosting.ru
WSGIScriptAlias //path/to/wsgi.py
WSGIDaemonProcess hostmanager user=web group=web\
processes=2 threads=4 maximum-requests=100 display-name=apache-user-wsgi
WSGIProcessGroup hostmanager
ErrorLog /var/logs/hostmanager.error.log
CustomLog /var/logs/hostmanager.access.log combined
</VirtualHost>Пример конфигурации Nginx:
server{listen80;server_name manager.myhosting.ru;access_log /var/log/nginx/hostmanager.access.log;error_log /var/log/nginxhostmanager.error.log;location /static {root /path/to/project/dir;access_log off;expires max;break;}location /media {root /path/to/project/dir;access_log off;expires5d;break;}location = /favicon.ico {root /path/to/static;access_log off;expires max;break;}location = /robots.txt {root /path/to/static;access_log off;break;}location / {proxy_passhttp://127.0.0.1:81;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-for$remote_addr;proxy_set_header Host $host;proxy_connect_timeout60;proxy_send_timeout90;proxy_read_timeout90;proxy_redirect off;proxy_set_header Connection close;proxy_pass_header Content-Type;proxy_pass_header Content-Disposition;proxy_pass_header Content-Length;}}