Welcome! Log In Create A New Profile

Advanced

Конкурирующие сервера

April 20, 2011 08:48AM
Простейшая конфигурация (для теста):

server {
listen 80 default_server;
server_name _;
return 404;
}

server {
listen 80;
server_name example.com;
location / {
rewrite ^.*$ /index.html break;
if_modified_since off;
expires -1;
root /var/www/tests/first/;
}
}

server {
listen 80;
server_name .example.com;
location / {
rewrite ^.*$ /index.html break;
if_modified_since off;
expires -1;
root /var/www/tests/second/;
}
}


Т.е. все различие между 2 и 3 секцией server только в том, что в 3 секции у server_name есть "." перед именем домен, а во второй нет, ну и root разные.
Согласно документации ".example.com" идентично "example.com *.example.com", но при использовании сокращенной формы при реконфиге получаем варнинг:
nginx: [warn] conflicting server name ".example.com" on 0.0.0.0:80, ignored

И все запросы на sub.example.com выдают 404.

Если не использовать сокращенную запись, то все работает корректно, т.е. запросы на example.com попадают во вторую секцию, а все запросы на sub.example.com в третью, варнинг при этом тоже конечно есть.

Чем можно объяснить такое поведение? Это баг?

P.S. Конфиг для nginx собирается динамически, поэтому хотелось бы использовать именно такой вариант, т.е. вручную развернуть сокращенную запись в полную нет возможности.
Subject Author Posted

Конкурирующие сервера

m.latyshev April 20, 2011 08:48AM

Re: Конкурирующие сервера

Igor Sysoev April 20, 2011 09:14AM

Re: Конкурирующие сервера

m.latyshev April 20, 2011 09:18AM

Re: Конкурирующие сервера

Igor Sysoev April 20, 2011 09:34AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 193
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready