Я установил nginx на сервере debian. У меня три сервера (виртуальных хостов):
Когда я обращаюсь к серверу с его доменными именами, я получаю нужные веб-сайты. Но когда я обращаюсь к серверу с его IP-адресом, возвращается сайт бронирования.
Этот веб-сайт бронирования находится на Symfony, вот содержимое файла с поддержкой сайтов / 2-booking:
server {
server_name booking.mydomain.com;
root /var/www/booking/web;
location / {
# try to serve file directly, fallback to app.php
try_files $uri /app.php$is_args$args;
limit_req zone=one burst=20;
}
location ~ ^/(app|app_dev|config)\.php(/|$) {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
error_log /var/log/nginx/booking_error.log;
access_log /var/log/nginx/booking_access.log;
}
Я хочу, чтобы мой сервер возвращал файл /var/www/index.php при обращении к нему с его IP-адреса. Вы знаете, что делать?
Чтобы явно установить сервер по умолчанию, вы можете добавить default_server
к listen
директива в /etc/nginx/sites-enabled/0-default
. Таким образом, этот параметр становится.
listen *:80 default_server;
Фрагмент из Как nginx обрабатывает запрос
В этой конфигурации nginx проверяет только поле заголовка запроса «Хост», чтобы определить, на какой сервер следует направить запрос. Если его значение не совпадает с каким-либо именем сервера или запрос вообще не содержит этого поля заголовка, то nginx направит запрос на сервер по умолчанию для этого порта. В приведенной выше конфигурации сервер по умолчанию является первым, что является стандартным поведением nginx по умолчанию. Также можно явно указать, какой сервер должен быть по умолчанию, с параметром default_server в директиве listen.