Configuração do subdomínio no servidor nginx do Ubuntu

2

Tenho um VPS de 2 núcleos e 2 GB de RAM com um endereço IP dedicado da Digital Ocean para o meu projeto. Eu estou usando nginx como um servidor web, MySQL como um servidor de banco de dados e ligar como um servidor DNS.

Meu projeto é uma plataforma de hospedagem gratuita para fins educacionais. Eu vou ensinar PHP e MySQL para estudantes da minha vizinhança e quero que eles pratiquem em seu próprio subdomínio com suporte PHP e MySQL.

Por exemplo, se meu nome de domínio principal for example.com , também configurarei um SSL curinga para meu domínio, e os subdomínios dos alunos deverão ser como student1.example.com .

Os alunos poderão ativar seu espaço da web com o subdomínio que escolherem automaticamente usando meu script de configuração, que está escrito em PHP.

Como posso alcançar o que quero sem usar painéis de controle de administração da web? Como qualquer subdomínio que é escolhido por um aluno resolve meu domínio principal?

Os alunos podem usar seu próprio domínio de TLD em uma configuração como essa?

Você tem alguma sugestão para esse tipo de configuração?

    
por Murat SAÇ 23.05.2014 / 16:36

1 resposta

2

Não é necessária muita configuração.

Primeiro, você configura seu domínio usando um registro curinga como:

*.example.com 300 IN A MY.IP.AD.DR

Em seguida, você configura o Nginx para combinar em um nome do servidor de regex do qual você pode veicular um diferente pasta dependendo do nome do usuário.

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;
  }
}

Observe, entretanto, que você precisará de um certificado SSL curinga para que seja válido, seja qual for o nome de domínio desejado.

    
por 23.05.2014 / 19:17