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

Nginx: изменить тело ответа дополнительным запросом

Я ищу способ изменить тело ответа, созданного некоторым веб-сервером, на который я проксирую свои запросы с помощью Nginx:

server {
    listen   80;
    server_name localhost;

    location /myproject/ {
        proxy_pass http://127.0.0.1:8080/myproject/;
        > modify response from http://127.0.0.1:8080/myproject/ before sending
    }
}

Это что-то вроде HttpSubModule, но с внешней программой, а не с простой заменой текста. Программа изменения - это веб-сервер Node.js, поэтому я подумал об отправке ответа в виде почтового запроса. Но это всего лишь краткая идея, мы высоко ценим любой подход.

Мне всегда нравился XSLT-процессор nginx для подобных задач. Об этом тоже написал длинный пост в блоге - бессовестная вилка: http://ef.gy/using-nginx-as-a-proxy-server - прокрутите немного вниз до части XSLT.

XSLT-процессор nginx также позволит вам использовать данные из других источников с document функция.