Как настроить NGINX для полного перенаправления запроса?

Как настроить перенаправление POST запросов на другой сервер с сохранением IP адреса перенаправляющего сервера, чтобы изначальные запросы оставались неизменными?
  • 28 марта 2024 г. 13:49
Ответы на вопрос 2
Для полного перенаправления запроса в NGINX можно использовать директиву `proxy_pass`. Например, если нужно перенаправить все запросы с домена `example.com` на другой сервер `http://newserver.com`, можно использовать следующую конфигурацию:

```
server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://newserver.com;
    }
}
```

Для сохранения IP адреса перенаправляющего сервера при перенаправлении POST запросов, можно передать заголовок `X-Forwarded-For` с оригинальным IP адресом. Например, можно добавить следующую директиву в конфигурацию:

```
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
```

Это позволит сохранить оригинальный IP адрес при перенаправлении запросов с помощью `proxy_pass`.
error_page 418 = @proxy;

if ($request_method = 'POST') {
    return 418;
}

location @proxy {
    proxy_pass http://site.ru;
}
Похожие вопросы