nginx производит в четыре раза больше трафика, чем node-http-proxy

мы используем node-http-proxy некоторое время, и он отлично работает. Но по мере роста нашей системы мы хотим перейти на nginx.

На данный момент мы потребляем около 100 запросов в секунду, что дает исходящий трафик около 1 МБ/с.

Наши тесты с nginx (одинаковое количество запросов, одни и те же внутренние серверы и одни и те же ответы) дают исходящий трафик около 4 МБ/с. Мы проверили заголовки, потому что это могло быть единственной разницей в ответе, но заголовки не сильно изменились.

Кто-нибудь знает, что еще может привести к увеличению трафика?

Спасибо, Ким

EDIT: мы не используем кластеризацию, это просто тупые обратные прокси. Запросы из домена A идут на сервер A, из домена B на сервер B, ... Мы проводили тесты в нашей производственной среде, поэтому бэкенд-серверы во время тестов оставались прежними, менялись только прокси.


person Kim Schneider    schedule 18.01.2013    source источник
comment
Используете ли вы кластеризацию? Вы используете только 1 процесс узла на бэкэнде?   -  person Mustafa    schedule 18.01.2013
comment
Мы не используем кластеризацию, прокси используются как простые обратные прокси. Запросы из домена А идут на сервер А, из домена Б на сервер Б и так далее.   -  person Kim Schneider    schedule 18.01.2013
comment
По умолчанию узел использует 1 процесс, но nginx оптимизирован для работы с несколькими ядрами, и это может быть одной из причин.   -  person Mustafa    schedule 18.01.2013
comment
Я бы также подумал, что это может быть обмен заголовками / файлами cookie (с каждым запросом). Просто используя консоль и инструменты Chrome, вы можете увидеть подробный обмен одним запросом — попробуйте с node-http-proxy и nginx.   -  person Breaking not so bad    schedule 18.01.2013
comment
У вас включен gzip? Я предполагаю, что это все ... Также является ли тело содержимого таким же?   -  person chrislovecnm    schedule 18.01.2013
comment
gzip выключен на обоих прокси и содержимое тел тоже самое. Мы использовали curl -i в Ubuntu для сравнения заголовков, и они почти одинаковы, за исключением одной или двух строк.   -  person Kim Schneider    schedule 22.01.2013
comment
Если у вас есть N потоков/ядер, у вас также должно быть N или N-1 процессов для NodeJS, только так вы полностью используете систему.   -  person Mustafa    schedule 22.01.2013
comment
Мустафа... не могли бы вы объяснить, каким образом количество процессов, используемых прокси, влияет на количество трафика, возвращаемого клиенту?   -  person Kim Schneider    schedule 24.01.2013
comment
Простой, NodeJS использует только 1 ядро ​​с 1 процессом. Когда Node работает, другие ядра выполняют другую работу. ЕСЛИ вы создаете соответствующее количество процессов, все ядра используются для процессов Node.   -  person Mustafa    schedule 28.01.2013
comment
Если количество запросов остается прежним и входящий трафик остается прежним, не имеет значения, сколько воркеров обрабатывают эти запросы. Если магазин нанимает второго сотрудника, это не значит, что покупателей сразу становится больше ;)   -  person Kim Schneider    schedule 29.01.2013


Ответы (1)


Мы выяснили, что происходит: старый сервер node.js не отправляет все необходимые сертификаты ssl. Nginx отправляет все сертификаты (промежуточные и т. д.) с каждым запросом.

person Kim Schneider    schedule 27.12.2013