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

Как настроить на nginx: резервный / стандартный сайт

В Apache, если 1) у меня есть несколько виртуальных хостов, прослушивающих один порт и 2) если ни один из запросов не соответствует ни одному из виртуальных хостов, тогда первый виртуальный хост будет тем, который ответит на запрос. Например, учитывая, что у меня есть такая конфигурация:

<VirtualHost *:8080>
  ServerName www.fallbacksite.com:8080
  ServerAlias *.fallbacksite.com
  # ...
</VirtualHost>

<VirtualHost *:8080>
  ServerName www.specific-site.com:8080
  ServerAlias *.specific-site.com
  # ...
</VirtualHost>

Затем:

Это последний сценарий, который я пытаюсь реализовать с помощью nginx, но на сайте nginx.org ничего не говорится об этом. Я пробовал использовать подстановочные знаки, но он жалуется, что он недействителен.

Как бы вы сделали эту настройку в nginx? Заранее спасибо!

Если вы хотите, чтобы на запрос отвечал только конкретный виртуальный хост, вы можете просто сделать следующее. Добавьте (или измените) строку прослушивания, чтобы включить default_server в конце. Это будет обслуживать этот виртуальный хост без изменения URL-адреса.

server {
    # Add default_server for any unresolved request
    listen 80 default_server;        
}

Если вы хотите сделать перенаправление, когда пользователь нажимает hellohowareyou.com вы можете добавить новый server заблокировать и перенаправить на хост, который вы хотите использовать:

server {
    # Add default_server only here for any unresolved request
    listen 80 default_server;    
    server_name _;
    rewrite ^ http://fallbacksite.com$request_uri permanent;
}