Мне нужно дублировать / зеркалировать трафик, поступающий на мой сервер / ресурс.
Я имею в виду, что у меня есть сервер A, B и N (nginx) в качестве веб-сервера.
Весь трафик, поступающий на N / ресурс -> перенаправляется как на A, так и на B
Является ли это возможным?
В Nginx теперь есть модуль зеркала http. Документация находится на https://nginx.org/en/docs/http/ngx_http_mirror_module.html
Пример конфигурации из документации:
location / {
mirror /mirror;
proxy_pass http://backend;
}
location /mirror {
internal;
proxy_pass http://test_backend$request_uri;
}
Вот новая функция nginx (1.13.4): http://nginx.org/en/docs/http/ngx_http_mirror_module.html#mirror
Модуль ngx_http_mirror_module (1.13.4) реализует зеркалирование исходного запроса, создавая фоновые зеркальные подзапросы. Ответы на зеркальные подзапросы игнорируются.
На основе их ПРОЧТИ МЕНЯ Похоже, что GOR может помочь вам решить вашу проблему.
Я никогда не использовал его раньше, просто наткнулся на него на этой неделе, так что удачи!
вы не можете зеркалировать запросы с помощью NGINX, но запрос доступен как переменная. Однако вы можете использовать сценарий Lua для отправки этой переменной на сторонний сервер в качестве подзапроса. http://nginx.org/en/docs/http/ngx_http_core_module.html#var_request
После раскопок я нашел решение. Вы можете видеть это здесь Скопируйте и доставьте запрос на другой сервер nginx для тестирования реального трафика автор: @scari
Просто подумал, что мне стоит упомянуть об этом здесь, чтобы облегчить поиск других людей. В своей настройке я не использовал uwsgi - вместо этого я хотел дублировать каждый входящий запрос на дополнительные серверы (в дополнение к магистральным серверам, которые уже были сбалансированы по нагрузке.
Надеюсь, это поможет,
Лирон