Мне нужно иметь возможность поддерживать несколько (~ 100) разных пользователей с их собственными веб-сайтами на веб-сервере на базе CentOS. Они должны иметь возможность использовать Python (v2 и v3) вместе с Django. Я понимаю, что для apache требуется перезапуск systemctl, который можно организовать с помощью задания cron. Однако я понятия не имею о других советах, приемах и требованиях со стороны администратора. Есть ли веб-сайт, который я буду использовать при настройке сервера? Я понимаю, что каждый из них может запускать свои собственные веб-серверы (simpleHTTPserver), но мне это кажется очень запутанным.
Буду благодарен за любую помощь по вопросу.
Вы должны запустить их приложения (Django, Flask, любой питонический) с помощью обратного прокси-сервера с использованием Nginx.
Затем установите в системный python только пакеты easy_install, setuptools и virtualenv. Все разработчики должны использовать свои собственные виртуальные среды для установки пакетов.
Я бы предложил использовать VirtualHosts и автоматизировать настройку
Вы можете настроить это на это /var/www/<sname>
автоматически загрузится для любого <sname>.domain.com
Пример: собираюсь s1.domain.com
и s1.domain.com
автоматически загрузится /var/www/s1
и /var/www/s2
соответственно.
В server_name
директива просто используется для сопоставления запроса с сайтом; вы можете использовать регулярное выражение:
server {
listen 80;
server_name ~^(www\.)?(?<sname>.+?).domain.com$;
root /var/www/$sname
...
}
Ты можешь использовать $sname
в остальной части конфигурации
Это немного сложно, но можно
LoadModule vhost_alias_module modules/mod_vhost_alias.so
UseCanonicalName Off
<VirtualHost *:80>
ServerName vhosts.fqdn
ServerAlias *.example.com
VirtualDocumentRoot /var/www/%1+
</VirtualHost>
Если вы хотите использовать HTTPS, я уверен, что есть API для создания сертификатов Letsencrypt.