Вот как выглядит парсер запроса: http://lxr.evanmiller.org/http/source/http/ngx_http_parse.c#L104 После того, как парсер пройдет POST, он перейдет в состояние sw_spaces_before_uri; Далее, как только встретися буква H, то парсер прервется (строка 292): switcby megalodon - Nginx Mailing List - Russian
Поспешил с ответом, nginx же вернет bad request. Конечный автомат, который используется для парсинга request line обнаружит, что нет uri. Т.е. в логах будет много ip для которых статус ответа - 400.by megalodon - Nginx Mailing List - Russian
if ($request_uri == "") { return 403; }by megalodon - Nginx Mailing List - Russian
Всем привет. Столкнулся с такой проблемой: допустим, есть дерево в shared memory, где ключ - ip адрес, а значение - структура, которая хранит определенную информацию связанную с этим ip. С ip необходимо также связать информациюby megalodon - Nginx Mailing List - Russian
Все, осознал: воркер, получив очередной event_list[] и обрабатывая некоторое событие может закрыть также и другой дескриптор, связанный с обрабатываемым, причем событие с этого другого закрываемого дескриптора также моглоby megalodon - Nginx Mailing List - Russian
Пытаюсь вникнуть в мысль: "Мы могли закрыть соединение до того, как добрались до обработки событий". Но где в промежутке между epoll_wait() и итерацией цикла, в которой мы обрабатываем событие то место, где мы можем потенby megalodon - Nginx Mailing List - Russian
Но после закрытия дескриптора, ядро автоматически удалит этот дескриптор из своих структур и не будет по нему отслеживать события. Ход событий в общем: воркер блокируется на epoll_wait(), по истечении тайм-аута либо по полby megalodon - Nginx Mailing List - Russian
Добрый день. В функции ngx_epoll_process_events() есть такой участок кода: for (i = 0; i < events; i++) { c = event_list.data.ptr; instance = (uintptr_t) c & 1; c = (ngx_connection_t *) ((uintptr_t) c & (uintptr_t) ~1); rev = c->read; if (c->fd == -1 || rev->instance != instance) {by megalodon - Nginx Mailing List - Russian
Добрый день, Игорь. У меня есть вопрос по этой формуле: excess = lr->excess - ctx->rate * ngx_abs(ms) / 1000 + 1000; Получается, что если в течение 1мс пришли 2 запроса, то второй будет дропнут, даже если в конфиге будет прописано 2000r/s?by megalodon - Nginx Mailing List - Russian
У меня получилось так: 1. В модуле ngx_epoll_module.c добавил extern tcp_close_notification (ngx_connection_t *c); 2. В функции ngx_epoll_del_connection() вызываю tcp_close_notification(c); А функция tcp_close_notification() определена в моем модуле и ей видны все необходимые структурby megalodon - Nginx Mailing List - Russian
Всем доброго дня. Пишу модуль под nginx. Управление передается модулю, когда прилетает request и наступает соответсвующая фаза обработки. Но, что если запрос не прилетел, а сессия закрылась по тайм-ауту со стороны nginx либоby megalodon - Nginx Mailing List - Russian
Столкнулся со следующей "странностью". Запускаю на машине A эмулятор SYN Flood: hping3 -n -S -p 80 --flood --rand-source <ip_of_B> На машине B работает nginx на 80-м порту. Также на машине B дал команду echo "128000" > /proc/sys/net/ipv4/tcp_max_syn_by megalodon - Other discussion
А в каких случаях nginx вернет 505 и 501?by megalodon - Nginx Mailing List - Russian
Случайно обнаружил, что на некоторые запросы, nginx отвечает не так, как это предписано RFC: 1. Если в запросе указана неверная версия HTTP, то сервер по идее должен вернуть 505, однако имеем следующее: # nc 127.0.0.1 443 <<EOF > GET / Hby megalodon - Nginx Mailing List - Russian
Максим, огромное спасибо!by megalodon - Nginx Mailing List - Russian
Максим, спасибо за ответ. Но, твой ответ породил у меня 2 новых вопроса. :-) 1. Как подобрать оптимальный размер буфера? 2. А если лог файл разместить в рам диске и сбрасывать его на HDD уже при ротировании, увеличит ли это пby megalodon - Nginx Mailing List - Russian
Добрый день. Идет очень огромный поток http-запросов: порядка 50000/сек и больше. Есть скрипт на перле, который обрабатывает логи, полученные по udp от udplog module. Вопрос, можно ли взаимодействовать с nginx не по udp, а напрямую, черby megalodon - Nginx Mailing List - Russian