У меня есть 2-ядерный VPS с 2 ГБ ОЗУ с выделенным IP-адресом от Digital Ocean для моего проекта. Я использую nginx в качестве веб-сервера, MySQL как сервер базы данных и связываюсь как DNS-сервер.
Мой проект - это бесплатная хостинговая платформа для образовательных целей. Я буду обучать PHP и MySQL студентов из моего района, и я хочу, чтобы они практиковались на собственном субдомене с поддержкой PHP и MySQL.
Например, если мое основное доменное имя example.com
, Я также установлю SSL с подстановочными знаками для своего домена, а субдомены студентов должны быть похожи на student1.example.com
.
Студенты смогут активировать свое веб-пространство с помощью поддомена, который они выбирают автоматически, с помощью моего сценария установки, написанного на PHP.
Как я могу достичь желаемого без использования панелей управления веб-администрированием? Как любой поддомен, выбранный учеником, может разрешить мой основной домен?
Могут ли студенты использовать свой собственный домен TLD в такой настройке?
Есть ли у вас какие-либо предложения по такой настройке?
Не требует особой настройки.
Сначала вы настраиваете свой домен, используя запись с подстановочными знаками лайк:
*.example.com 300 IN A MY.IP.AD.DR
Затем вы настраиваете Nginx для сопоставления на имя сервера регулярных выражений из которого вы можете обслуживать другую папку в зависимости от имени пользователя.
server {
listen 80;
listen 443 ssl;
server_name ~ ^(?<user>.+)\.example\.com$;
ssl_certificate /path/to/cert;
ssl_certificate_key /path/to/key;
location / {
# Set root directory depending on the domain name.
root /var/www/$user;
# Try to serve the file before calling PHP.
try_files $uri $uri/ @proxy;
}
location @proxy {
fastcgi_pass PHP.FPM.AD.DR:PORT;
}
}
Однако обратите внимание, что вам понадобится подстановочный SSL-сертификат чтобы он был действительным независимо от целевого доменного имени.