Eu acredito que isso é causado por essa linha:
root /home/www-data/public-www;
você pode remover isso ou especificar em outro lugar.
Eu sou um novato em Nginx. Eu aluguei um pequeno VPS com o Ubuntu 12.04 para testar. Eu não aluguei nenhum domínio, então eu faço solicitações diretamente usando o ip. Para esta questão, vamos supor que o ip é 209.208.26.89 . Instalou o último Nginx estável do oficial ppa.
Depois de instalar o Nginx e verificá-lo funcionando ok (indo com o meu navegador para http://209.208.26.89
) eu removi a configuração padrão de / etc / nginx / sites-enabled. Eu usei essa configuração primeiro:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /home/www-data/public-www;
index index.html index.htm; #index.html is inside /home/www-data/public-www
server_name 209.208.26.89; #remember, no domain
location /example {
root /home/www-data/public-www/example;
index hello.html; #hello.html is inside /home/www-data/public-www/example
try_files $uri $uri/ =404;
}
}
Todos os diretórios e permissões estão definidos corretamente.
Quando acessei http://209.208.26.89/example
, fui recebido com um erro 404. O mais estranho é que acessar o http://209.208.26.89/
renderia o arquivo hello.html.
Como isso é suposto acontecer? Estou configurando esse arquivo para o local /example
!
No entanto, tentei com isso:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /home/www-data/public-www;
index index.html index.htm;
server_name 209.208.26.89; #remember, no domain
location /example {
alias /home/www-data/public-www/example; #HERE'S THE CHANGED LINE
index hello.html;
try_files $uri $uri/ =404;
}
}
Usando essa configuração, http:// 209.208.26.89/example
produzirá corretamente hello.html. MAS http:// 209.208.26.89
produzirá o mesmo arquivo.
Para deixar claro, o que quero fazer é: quando solicitar http:// 209.208.26.89/example
Nginx deve me servir /home/www-data/public-www/example/example.html. Eu fiz isso com a minha segunda configuração, com a desvantagem de ser servidor também em http:// 209.208.26.89
. Mas meu segundo requisito é 'http: // 209.208.26.89/' para me servir nada (deve retornar 404).
Tenho certeza de que estou sentindo falta de algo óbvio, mas nenhum guia ou documentação parece me apontar na direção certa. Alguém pode me ajudar a entender o que está acontecendo?
Eu acredito que isso é causado por essa linha:
root /home/www-data/public-www;
você pode remover isso ou especificar em outro lugar.
Tags nginx ubuntu-12.04