влияние конфига

Igor Sysoev is at rambler-co.ru
Wed Feb 2 13:47:52 MSK 2005


On Wed, 2 Feb 2005, Phil Kulin wrote:

>  Никто не пробовал nginx с более чем 100 "Server {}" под нагрузкой?

Есть две директивы: server_names_hash_threshold и server_names_hash.
Обе директивы работают только на уровне http.

server_names_hash_threshold задаёт минимальное число имён для пары
адрес:порт, при котором используется хэширование. По умолчанию - 50.

Если имён меньше, то делается просто линейный поиск в массиве.
Нужно иметь ввиду ещё такую вещь - можно написать много имён, но
если nginx решит, что на данной паре адрес:порт нет виртуальных серверов,
то имена вообще проверяться не будут. Но для этого нужно задавать
явные адрес и порт. Если в конфигурации есть хотя бы один порт без адреса,
то nginx будет слушать только на *:порт. В принципе, это легко исправить,
чтобы кроме *:порт были и явные адрес:порт, но пока необходимости в
этом не было.

server_names_hash задаёт размер хэша, по умолчанию 1009. Если имён не много,
скажем, 500, то можно поставить что-то вроде 101. Для размера лучше брать
простые числа.


Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list