Как перенаправить полностью запрос через NGINX?
Необходимо перенаправить POST запросы приходящие на сервер на другой сервер, почти необходимого поведения получилось через permanent Redirect( return 301). Но необходим функционал, чтобы светились не изначальные IP серверов от которых пришел запрос, а IP этого перенаправляющего сервера, пробовал proxy_pass и mirror, они каверкали изначальные запросы (например перенаправляя GET вместо пришедшего POST)
Дополнительно:
для POST нельзя сделать redirect
Ответы:
error_page 418 = @proxy; if ($request_method = 'POST') { return 418; } location @proxy { proxy_pass http://site.ru; } |
error_page 418 = @proxy; if ($request_method = 'POST') { return 418; } location @proxy { proxy_pass http://site.ru; }
- Я когда тестировал что то похожее с http сервером проблем не возникло, но при попытке отправить на https сервер снова пошли GET
-
тестировал что то похожее
MaxedJ, тогда нужно подробнее как именно выглядит конфиг и как тестировали.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для того чтобы полностью перенаправить запрос через NGINX, вам потребуется использовать директиву location в конфигурационном файле NGINX. Эта директива позволяет определить, какой обработчик будет использоваться для запросов, соответствующих определенному шаблону URL.
Вот пример того, как можно настроить полное перенаправление запроса через NGINX:
server { listen 80; server_name example.com; location /old-url { return 301 http://example.com/new-url; } }
В этом примере, мы указываем серверу на прослушивание порта 80 и обслуживание запросов для домена example.com. Далее мы используем директиву location для указания, что все запросы, поступающие на URL /old-url, должны быть полностью перенаправлены на URL http://example.com/new-url с кодом ответа 301 (переадресация на постоянной основе).
После внесения изменений в конфигурационный файл NGINX, не забудьте перезапустить сервер для применения изменений:
sudo systemctl restart nginxsudo systemctl restart nginx
Теперь все запросы, поступающие на URL /old-url, будут автоматически перенаправлены на URL http://example.com/new-url. Не забудьте заменить example.com, old-url и new-url на реальные значения вашего веб-сайта.