Я новичок в Nginx. Я арендовал небольшой VPS с Ubuntu 12.04 для тестирования. Я не арендовал домен, поэтому делаю запросы напрямую, используя ip. Для этого вопроса предположим, что IP-адрес 209.208.26.89. Установил последний стабильный Nginx с официального ppa.
После установки Nginx и проверки его работы (в моем браузере http://209.208.26.89
) Я удалил конфигурацию по умолчанию из / etc / nginx / sites-enabled. Сначала я использовал эту конфигурацию:
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;
}
}
Все каталоги и разрешения установлены правильно.
Когда я получил доступ к http://209.208.26.89/example
Меня встретили 404. Странно то, что доступ к http://209.208.26.89/
даст файл hello.html.
Как это могло произойти? Я устанавливаю этот файл в местоположение /example
!
Однако потом я попробовал вот что:
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;
}
}
Используя эту конфигурацию, http:// 209.208.26.89/example
правильно даст hello.html. НО http:// 209.208.26.89
даст тот же файл.
Чтобы было понятно, я хочу сделать следующее: при запросе http:// 209.208.26.89/example
Nginx должен обслуживать меня /home/www-data/public-www/example/example.html. Я сделал это со своей второй конфигурацией, недостатком которой был сервер также в http:// 209.208.26.89
. Но мое второе требование - «http: // 209.208.26.89/», чтобы ничего мне не обслуживать (должно возвращать 404).
Я уверен, что мне не хватает чего-то очевидного, но никакое руководство или документация, похоже, не укажет мне правильное направление. Может ли кто-нибудь помочь мне понять, что происходит?
Я считаю, что это вызвано этой строкой:
root /home/www-data/public-www;
http://nginx.org/en/docs/http/ngx_http_core_module.html#root
вы можете удалить это или указать в другом месте.