Как перенаправить полностью запрос через NGINX?

Ссылка скопирована
1 ответ

Необходимо перенаправить POST запросы приходящие на сервер на другой сервер, почти необходимого поведения получилось через permanent Redirect( return 301). Но необходим функционал, чтобы светились не изначальные IP серверов от которых пришел запрос, а IP этого перенаправляющего сервера, пробовал proxy_pass и mirror, они каверкали изначальные запросы (например перенаправляя GET вместо пришедшего POST)

Дополнительно:

для POST нельзя сделать redirect

  • Everything_is_bad, может есть какой то другой способ , как то отправить новый пост, склонировав тело запроса, тут мне не пренципиально чтобы был именно. 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, тогда нужно подробнее как именно выглядит конфиг и как тестировали.

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Анна SEO Ответ

    Для того чтобы полностью перенаправить запрос через NGINX, вам потребуется использовать директиву location в конфигурационном файле NGINX. Эта директива позволяет определить, какой обработчик будет использоваться для запросов, соответствующих определенному шаблону URL.

    Вот пример того, как можно настроить полное перенаправление запроса через NGINX:

    server {
        listen 80;
        server_name example.com;
     
        location /old-url {
            return 301 http://example.com/new-url;
        }
    }

    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 nginx

    sudo systemctl restart nginx

    Теперь все запросы, поступающие на URL /old-url, будут автоматически перенаправлены на URL http://example.com/new-url. Не забудьте заменить example.com, old-url и new-url на реальные значения вашего веб-сайта.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно