Назад | Перейти на главную страницу

Попросить nginx обрабатывать запросы с одного IP параллельно?

У меня есть внутреннее приложение моей компании, которое должно быть очень быстрым для каждого клиента, потому что клиенты очень ограничены, а все это внутреннее.

Итак, ожидается, что клиент отправит так много одновременных запросов и то, что я хочу nginx сделать - это добавить в это как можно больше параллелизма. Да, это прямо противоположно тому, что обычно делают люди. Куда бы я ни искал, люди просят ограничить количество подключений по IP, тем самым уменьшая атаки и т.д.

Я не могу понять, что происходит в nginx относительно этого. Что я пытался сделать, так это протестировать его поведение, имея простой сервер, который просто спит 10 секунд и возвращает строку, а я curlотправил его с 5 разных терминалов. Цифры, где 10 секунд, 18 секунд, 21 секунда, 25 секунд, 30 секунд. Таким образом, происходит какая-то очередь, но не совсем последовательная (иначе она должна была быть 10 секунд, 20 секунд, 30 секунд, 40 секунд, 50 секунд). Но это тоже не полная параллель!

Надеюсь, это проясняет то, что я хочу ... посоветуйте, пожалуйста.

Nginx разрешает любое разумное количество запросов с одного IP. Только что проверил с этой конфигурацией:

server {
    listen 3333;

    default_type text/plain;

    location / {
        echo_sleep 3;
        echo 'Hi';
    }
}

и сценарий:

for ((i = 0; i < 100; i++)); do time curl -s localhost:3333  &  done

Я предполагаю, что вы тестировали PHP или какой-либо другой сервер за nginx, и этот сервер не может обрабатывать так много запросов.