Eu tenho um VPS da DigitalOcean baseado no Ubuntu 16.04 com um Nginx puro (gerencio DNSs por meio da ferramenta de gerenciamento de DNS da DigitalOcean). No meu ambiente Nginx, tenho 2 sites em /var/www/html/
. Um é example.com
(HTTPS) e o outro é um site sem domínio com um diretório chamado test
(HTTP).
Como criar um subdomínio para example.com que levará ao teste ? ( test.example.com
)?
1) Meu nginx.conf .
2) Meu example.com
site-conf:
server {
root /var/www/html/example.com;
server_name example.com www.example.com;
location ~ /\.ht {
deny all;
}
location / {
index index.php index.html index.htm fastcgi_index;
try_files $uri $uri =404 $uri/ /index.php?$args;
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js|ttf|woff|pdf)$ {
expires 365d;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
listen 80; # managed by Certbot
listen 443 ssl http2; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
if ($scheme != "https") {
return 301 https://$host$request_uri;
} # managed by Certbot
# Redirect non-https traffic to https
# if ($scheme != "https") {
# return 301 https://$host$request_uri;
# } # managed by Certbot
}
3) Meu test
site-conf:
server {
root /var/www/html/test;
location ~ /\.ht {
deny all;
}
location / {
index index.php index.html index.htm fastcgi_index;
try_files $uri $uri =404 $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
listen 80;
}
Atualizar:
- Ainda não alterei nada na ferramenta de gerenciamento de DNS do meu provedor de hospedagem VPS.
- Quero que todos no mundo possam acessar o
test
site por meio do subdomínio.
Duas coisas são necessárias em qualquer ambiente Nginx e DNS para criar corretamente um novo subdomínio com uma raiz de documento diferente:
Um
server { }
bloco adicional para lidar com isso (além do que você já tem no item #3).Um registro DNS para apontar o outro subdomínio para o servidor web adequado.
Com base na configuração fornecida, você precisa fazer 2 coisas:
Falta uma diretiva
test.example.com
na configuração do seu site.server_name test.example.com;
Adicione um e reinicie onginx
processo.Defina um
test.example.com
registro DNS no DNS para seu domínio principal (provavelmente, da ferramenta de gerenciamento de DNS da sua nuvem).Sempre diga ao NGINX quais sites processar com quais blocos de servidor. Como mantenedor do pacote
nginx
no Ubuntu, estou familiarizado com a maioria das armadilhas no nível do usuário que as pessoas encontram, como esta.Você nos deu isso:
Então , literalmente , apenas adicione logo antes da sua
root
linha, esta linha:... e você obtém este arquivo de configuração: