server_name bug

Konstantin G. www-master at arsvest.ru
Mon Oct 27 03:04:06 MSK 2008


> > я уже писал об этом: виртуальные сервера бывают не только name-based,
> > но и ip-based. то поведение nginx что есть сейчас - позволяет реализовать
> > с помощью одного nginx любые комбинации этих двух типов виртуальных серверов,
> > причем без ввода в конфиг дополнительных директив, вида NameVirtualHost
> > и без ограничения возможностей, как это сейчас можно наблюдать в Apache.
>
> server {
>   listen *:80;
>   server_name virtual.host;
> }
> server {
>   listen 1.2.3.4:80;
>   server_name ipbased.host;
> }
>
> Все запросы, пришедшие на 1.2.3.4:80, но не содержащие
> "Host: virtual.host" идут на ipbased. Благодаря правильным
> записям в DNS - такие запросы и не будут ходить на 1.2.3.4
> Если же по какой-то причине нужно, чтобы ipbased обрабатывал и
> запросы с "Host: virtual.host" - тогда придется заменить
> "listen *:80;" на прямое перечисление адресов.

А хотя... Здесь вынужден согласиться. Если внешний адрес
динамический, то без * никак не обойтись. Ладно, сдаюсь :)

PS. Хотя я всё-равно предпочёл бы иметь дополнительный параметр
(ipbased: on). Это было бы и наглядней, и позволило бы нгинксу
отслеживать ошибки конфигурирования. - Т.е. если админ по ошибке
указал два сервера, слушающих один и тот же адрес:порт, но хотя
бы для одного из них указано "ipbased: on;" то можно указать ему
на ошибку.





More information about the nginx-ru mailing list