Назад | Перейти на главную страницу

Перезапись местоположения nginx, но отключение proxy_rewrite

Я пытаюсь использовать nginx для проксирования запросов на мой внутренний сервер.

Моя конфигурация выглядит следующим образом:

location /Shibboleth.sso {
    proxy_pass internal-backend; # ip
    proxy_redirect off;
}

Но мои перенаправления всегда переписываются ... Моя серверная часть возвращает ответ типа https://www.google.de/test и мой браузер получает https://www.mydomain.de/test

Как заставить nginx просто пересылать ответ?

Вот мой конфиг:

  set $s3_bucket '<BUCKETNAME>.s3.amazonaws.com';

  location / {
        send_timeout 5m;
        proxy_read_timeout 240;
        proxy_send_timeout 240;
        proxy_connect_timeout 240;
        proxy_http_version 1.1;
        proxy_set_header Host $s3_bucket;
        proxy_set_header Authorization '';
        proxy_hide_header x-amz-id-2;
        proxy_hide_header x-amz-request-id;
        proxy_ignore_headers "Set-Cookie";
        proxy_buffering off;
        proxy_intercept_errors on;
        proxy_redirect off;
        resolver 8.8.8.8;
        proxy_pass http://$s3_bucket;
        }

Проверено и работает. Он просто передает URI экземпляру S3, позволяя завершить SSL-соединение на прокси-сервере. Полезно для межсетевых экранов и подобных устройств, требующих статического IP-адреса; поскольку адресное пространство AWS огромно для целей белого списка.

Я решил проблему. POUND (мой ssl-прокси) по умолчанию автоматически перезаписывает каждое местоположение. я добавил

RewriteLocation 0

в pound.cfg, и, наконец, он заработал.