Назад | Перейти на главную страницу

Сервер Nginx по умолчанию не применяется

Я установил 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.