Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: server_name bug
В чт, 30/10/2008 в 15:48 +0300, Vladimir Rusinov пишет:
>
>
>
>
> 2008/10/30 MZ <zuborg@xxxxxxxxxxxxxxxxxxx>
> В ср, 29/10/2008 в 21:23 +0200, Gena Makhomed пишет:
> > M> Кто-нибудь сможет привести реальный пример
> > M> когда требуется именно такое поведение как сейчас?
> >
> > сейчас директива listen *:port означает "все остальные
> ip:port,
> > кроме явно определенных в других директивах server", и это
> имеет
> > смысл и дает возможность для маневра, когда часть ip -
> динамические.
>
>
> Так вот, мое предложение состоит в том чтобы выбросить из
> вашего
> определения часть "кроме явно определенных в других директивах
> server".
> Т.е. будет означать просто "все ip:port".
> Вы все ещё настаивате на том что сможете привести пример когда
> такое
> изменение сделает невозможным определить нужную вам
> конфигурацию ?
> Тогда приведите его (пример).
>
>
> Пример:
> Есть некий сервер. У него есть некий фиксированый ip (в его локальную
> сеть) и несколько штук динамических (тунели в untrusted сети).
> Нужно чтобы некий ресурс открывался только с этого фиксированного ip,
> и некие ресурсы, которые открывались бы со всех ip.
Что за некий ресурс ? my_internal_site ?
тогда не вижу никаких проблем, вам даже не придется менять конфигурацию
первый виртхост матчит все запросы на ип 1.2.3.4 с Host:
my_internal_site - то есть ресурс открываться будет при коннектах к
этому ип.
коннекты на остальные ипы не матчат первый виртхост никак, потому что
там четко прописан ип, а не *:80 - то есть этот ресурс не будет
открываться при коннектах на другие ипы
остальные ресурсы будут продолжать матчить коннектам на все остальные
ипы - ничего не поломается.
Все вышесказанное мною, разумеется, применяется не к текущему поведению,
а к модифицированному, когда виртхост с "listen *:80" и без "listen
1.2.3.4:80" не игнорируется при коннектах на ип 1.2.3.4 если есть
виртхост с "listen 1.2.3.4:80"
> Вполне реальная ситуация, и через некоторое время такая может
> возникнуть и у меня.
>
> Сейчас это делается легко, понятно и логично:
>
> server {
> listen 1.2.3.4:80;
> server_name my_internal_site;
> }
> server {
> listen *:80
> listen 1.2.3.4:80;
> server_name my_public_site;
> }
> server {
> listen *:80
> listen 1.2.3.4:80;
> server_name my_public_site2;
> }
Насколько я понимаю, в текущей конфигурации пара директив listen нужна
чтобы публичные сайты открывались при коннектах на внутренний ип 1.2.3.4
При модифицированном поведении достаточно будет обойтись просто одним
"listen *:80"
> --
> Vladimir Rusinov
> http://greenmice.info/
|