ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [nginx feature request] change server_name default value to ""



On 20.07.2010 8:21, Kruglov Eugenie wrote:

Если не брать в расчёт субьективизм, что мне интуитивно понятнее
"server_name $hostname;", то остаётся вопрос с логами: в случае
незаполненного server_name что будем писать в лог? Если $hostname -
нелогично. ""? Косяки с анализаторами логов, косяки с читаемостью.

для логов эта проблема решена, вместо "" для пустых и отсутствующих
значений каких-либо полей и в nginx и в apache выводится символ '-'

и для всех таких случаев, где применяется server_name  _;

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

что будет в логе, символ '_' или символ '-', - практически нет разницы.

причем, дефолт server_name ""; никому мешать не будет, в частности,
в вышеприведенном примере конфига из официальной документации:

http://nginx.org/en/docs/http/request_processing.html #how_to_prevent_undefined_server_names

We have chosen the non-existent domain name ?_? as the server name [...] Note that you should set a name for this server, otherwise nginx will use the hostname.

этот вариант обхода и "выключения" мешающего дефолта
будет не нужен, и можно будет просто написать:

server {
    listen  80 default_server;
    return 444;
}

и туда будут попадать все запросы на несуществующие сервера
и все запросы у которых отсутствует поле "Host" - что нам и надо.

при написании примеров использования nginx, документации, ... приходится
многократно повторять "server_name _;" для отмены навязчивого дефолта.

изменить дефолтовое значение server_name на "", что сделает ненужным
хак server_name _; и в результате этого конфиги станут чище и красивее.

отсутствие директивы server_name подразумевает пустое имя сервера ""
дефолт server_name $hostname; является неожиданным поведением nginx.

Предложение мне нравится.
У кого-нибудь есть возражения ?

--
Best regards,
 Gena


_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.