Вы, вероятно, не хотите делать это. Что ты на самом деле пытаешься сделать?
Майкл Хэмптон
1
Мне действительно нужно это сделать
Agus
2
У меня есть случай использования. У меня есть клиент, отправляющий данные на мои серверы, которые использует наша производственная инфраструктура. Для дальнейшей разработки мне нужны точно такие же данные, которые были отправлены на мои dev-серверы. Клиент может отправлять данные только на 1 конечную точку. Не спрашивай почему, я не знаю.
Чувак
1
О, мне нужно дублировать трафик, я имею в виду, что трафик будет обрабатываться A, но B получит автономный процесс
Agus
2
Я нашел другую версию этого вопроса с ответом, который мне помог: serverfault.com/a/515531/175380 По сути, вы устанавливаете расположение, которое будет отражено в post_actionдирективе. Это будет выполнено после того, как запрос был удовлетворен производственной машиной.
Привет, используя GOR, он просто подтверждает с http 200. Так что, если у него есть объект ответа или проверка, которую он хочет сделать с тем, что отправляет ему клиент, я не думаю, что это сработает для него. Насколько я могу судить, и я новичок в Gor, вы не можете передать объект результата из одного из ваших выходных сегментов.
PatrickWalker,
Мы сейчас тестируем GOR и у нас есть пара проблем. Он интерпретирует заголовки как: Location: // newpath генерирует запросы как GET // newpath. Перенаправляет потерянные оригинальные заголовки (включая hostragent хоста и т. Д.). Мы переходим на другой инструмент.
Аалекс Габи
1
вы не можете зеркально отразить запросы с помощью NGINX, но запрос доступен как переменная. Вы можете использовать сценарии Lua для отправки этой переменной на сторонний сервер в качестве дополнительного запроса.
http://nginx.org/en/docs/http/ngx_http_core_module.html#var_request
Просто подумал, что должен упомянуть об этом здесь, чтобы облегчить поиск других людей. В моей настройке я не использовал uwsgi - вместо этого я хотел дублировать каждый входящий запрос на дополнительные серверы (в дополнение к магистральным серверам, которые уже были сбалансированы по нагрузке).
post_action
директиве. Это будет выполнено после того, как запрос был удовлетворен производственной машиной.Ответы:
Nginx теперь имеет зеркальный модуль http. Документация находится по адресу https://nginx.org/en/docs/http/ngx_http_mirror_module.html.
Пример конфигурации из документации:
источник
Вот новая функция от nginx (1.13.4): http://nginx.org/en/docs/http/ngx_http_mirror_module.html#mirror
источник
На основании их README похоже, что GOR может помочь вам решить вашу проблему.
Я никогда не использовал его раньше, просто наткнулся на это на этой неделе, так что удачи!
источник
вы не можете зеркально отразить запросы с помощью NGINX, но запрос доступен как переменная. Вы можете использовать сценарии Lua для отправки этой переменной на сторонний сервер в качестве дополнительного запроса. http://nginx.org/en/docs/http/ngx_http_core_module.html#var_request
источник
После копания и копания я нашел решение. Вы можете увидеть его здесь. Скопируйте и отправьте запрос на другой сервер nginx для проверки реального трафика @scari.
Просто подумал, что должен упомянуть об этом здесь, чтобы облегчить поиск других людей. В моей настройке я не использовал uwsgi - вместо этого я хотел дублировать каждый входящий запрос на дополнительные серверы (в дополнение к магистральным серверам, которые уже были сбалансированы по нагрузке).
Надеюсь, это поможет,
Лирон
источник