Назад | Перейти на главную страницу

Конфигурация поддомена на сервере Ubuntu nginx

У меня есть 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-сертификат чтобы он был действительным независимо от целевого доменного имени.