Friday, 17 October 2008

Nginx: просто ответ

Сидел я себе на работе, наслаждаясь нормальными стаканчиками, и захотелось мне иметь возможность написать в nginx.conf такую вот конструкцию:

location /response {
    response "<root><pid>$pid</pid></root>";
    response_type "text/xml";
}

Подумал я немного, поспрашивал разных умных, да и не очень, людей и написал, в итоге модуль. Авось кому еще пригодиться.

Патч добавляет опцию --with-http_response_module в ./configure, и две директивы в конфиг response и response_type, если response_content_type не установлен, берется значение из default_type.

Для наложения можно использовать обычный patch.

Write on: 19:14 | 13 comments | | tags: , , , | permalink |
Add post to:   Delicious Reddit Slashdot Digg Technorati Google


Add comment

Comments

asd 20.10.2008 19:25

Как я понимаю, проблема распространения модулей обособленным деревом уже решена и из патча можно сделать архив? В противном случае тенденция распространения модулей патчами рискует превратиться в бардак.

http://www.lexa.ru/nginx-ru/msg19844.html

Я не догоняю! В наш век, когда космические корабли давно уже бороздят, что мешает тебе поднять для этого дела Hg/SVN/Git-репозитарий?

reply
Kirill A. Korinskiy 20.10.2008 21:11

Он есть, естесвенно. Просто он ниразу не публичный. И там слишком большой кусок того, что я не хочу делать публичным. Как только оно бубдет готово — выложу.

Вообще делать сто тыщ мильёнов отдельных репозиториев с модулями… Я не уверен что хочу, мне прощи именно так патчить nginx.

reply

Comment form for «Nginx: просто ответ»

Required. 30 chars of fewer.

Required.

asd 21.10.2008 15:11

Тебе видней, конечно.

P.S.А вот ispell к блогу уже пора прикручивать ;)

reply
Kirill A. Korinskiy 21.10.2008 19:42

Его лучше интегрировать сразу в меня, ага ;)

reply
Alrond 26.12.2008 21:54

В модуле ошибка: если не использовать в строке response переменных, то в конце появляется символ � (EF)

reply
Kirill A. Korinskiy 27.12.2008 2:13

Хм… А можно тесты, пожалуйста? А вы попробуйте написать response “qqqn”; Именно с переносом строки, может лучше будет?

reply
Alrond 27.12.2008 2:35

В общем все варианты перепробовал. Появляется всегда если текст простой, не зависит от того, что внутри написано. даже пройтейший response “qqqn”; Исчезает в двух случаях: 1) внутри, и не играет роли где, используется любая переменная 2) если только текст без переменных, то ошибка исчезает если последний символ > и при этом где-то ранее должен быть < а между ними хоть что-то. То есть ошибка появляется если символ > последний и в тексте нет вообще < или если есть пара <> без текста внутри

reply
Kirill A. Korinskiy 27.12.2008 6:01

Могу я попросить вас (можно в почту catap@catap.ru) дать мне nginx.conf на котором это работает и строчку для curl/wget которой получаете файл с ошибкой?

reply
Kirill A. Korinskiy 28.12.2008 16:56

Спасибо, исправил

reply
Alrond 28.12.2008 17:29

а где можно скачать новую версию?

reply
Kirill A. Korinskiy 29.12.2008 0:57

Обновил ссылку на пост.

reply
Alrond 29.12.2008 1:09

спасибо

и спасибо за патч, внедрил его как часть моего решения генерации API ответов определения страны по IP и количество генераций в секунду возрасло на 20%

reply
Kirill A. Korinskiy 29.12.2008 1:52

Спасибо вам за тестирование.

Рад что кому-то это еще нужно ;)

reply