Registrei um subdomínio ddns no No-IP: example.ddns.net
configurei o No-IP para mapear o IP do meu roteador, que encaminha a porta para o meu servidor web NGINX. Eu quero ter um servidor web separado que hospedei no web1.example.ddns.net
qual aponta para /var/www/web1
. O que eu não sei é como dizer ao NGINX para apontar /var/www/web1
quando chamado de web1.example.ddns.net
. Alguém pode me dar uma explicação detalhada sobre como configurar meu servidor?
Abaixo está minha configuração para example.ddns.net
esta configuração está localizada em /etc/nginx/sites-available/
há um link para /etc/nginx/sites-enabled
.
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/example.ddns.net;
server_name example.ddns.net;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
Abaixo está minha configuração para web1.example.ddns.net
esta configuração está localizada em /etc/nginx/sites-available/
há um link para /etc/nginx/sites-enabled
.
server {
listen 80;
listen [::]:80;
root /var/www/web1.example.ddns.net;
server_name web1.example.ddns.net;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
}
Estes são os únicos arquivos que alterei. O servidor NGINX a seguir está hospedado no Ubuntu Server e estou acessando o servidor via ssh e acessando a página da Web por meio de um computador separado. Alguém pode dar algumas instruções sobre como corrigir esse problema?
A resposta a seguir é bastante básica. Então, por favor, perdoe-me se eu passar por cima de algo que você já sabe. =)
Como aviso, se você ainda não o fez, precisa fazer ex.
web1.example.ddns.net
com No-IP e aponte-o para o seu servidor. Caso contrário, a configuração do servidor não importará, pois ninguém poderá entrar em contato com o servidor por meio desse endereço.Tudo o que você realmente precisa são blocos de servidor básicos. Cribbing dos exemplos padrão do NGINX:
ex. exemplo.ddns.net
ex. web1.example.ddns.net
Instruções básicas
Para o Ubuntu, você deve colocar esses blocos de servidor no
sites-available
diretório apropriado (ex./etc/nginx/sites-available/
) como, por exemplo,example.ddns.net
eweb1.example.ddns.net
.Crie os links simbólicos relevantes para
sites-enabled
(ex./etc/nginx/sites-enabled/
) como, por exemplo:ou por qualquer método recomendado pelo seu sistema operacional.
Execute
nginx -t
(como ex.sudo nginx -t
) conforme sugerido nos comentários para garantir que o NGINX não encontre nenhum erro de sintaxe ou outros problemas.Reinicie o NGINX com ex.
sudo systemctl restart nginx
.Notas
Os blocos acima descartam o IPv6 (isso provavelmente não deve ser necessário para o teste).
Nenhum desses exemplos usa
default_server
.Cada
root
entrada respectiva é colocada em umlocation
bloco (ou seja, a raiz do site/
).O segundo bloco de servidor acima usa
/var/www/web1
comoroot
for/
(em vez deweb1.example.ddns.net
), pois é isso que você especificou inicialmente em sua pergunta. Em qualquer caso, para ser claro,root
precisa corresponder a qualquer estrutura de diretório que você tenha em seu sistema de arquivos físico. Ou seja, ele não precisa espelhar seuserver_name
, a menos que você realmente tenha feito diretórios (ou similares) chamados ex.example.ddns.net
eweb1.example.ddns.net
.O primeiro bloco de servidor ainda usa
/var/www/example.ddns.net
, portanto, certifique-se de que esse é o caminho correto para o local onde você está armazenando seus arquivosexample.ddns.net
.Em geral, depois de fazer alterações em seu servidor, geralmente é uma medida inteligente limpar o cache do navegador para que ele não devolva dados antigos.