Nginx застрял в цикле перенаправления, в то время как proxy_pass - PullRequest
0 голосов
/ 16 октября 2019

Мы работаем с другой компанией, которая использует продукт SAP, который им не предоставляется. Они хотят, чтобы мы добавили его в iframe на нашем сайте, однако сервер отправляет заголовок X-FRAME-OPTIONS SAMEORIGIN.

Мы попытались просто прокси-сервер на нашем сервере Nginx, используя:

server {
    listen 80;
    server_name othercompany.ourdomain.tld;
    resolver 8.8.8.8;

    access_log /var/log/nginx/othercompany.access.log;
    error_log /var/log/nginx/othercompany.error.log;

    location / {
        proxy_set_header Host subdomain.othercompany.tld;
        proxy_pass https://Host subdomain.othercompany.tld;
        proxy_set_header  X-Forwarded-Proto https;
        proxy_intercept_errors  on;
    }
}

Когда я заменяю subdomain.othercompany.tld на случайный домен (либо тот, который мы контролируем, либо совершенно не связанный, например, веб-сайт газеты), он работает нормально. Однако, когда я переключаю его на свой домен, Nginx возвращает перенаправление 301 на текущую страницу (например, если мы введем othercompany.ourdomain.tld, будет перенаправление 301 на этот URL-адрес, пока браузер не примет решение, куда куда перенаправить и показатьошибка.

Пример. Accesslog:

[...]
172.22.0.4 - - [16/Oct/2019:19:51:54 +0000] "GET / HTTP/1.1" 301 0 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0"
172.22.0.4 - - [16/Oct/2019:19:51:54 +0000] "GET / HTTP/1.1" 301 0 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0"
172.22.0.4 - - [16/Oct/2019:19:51:54 +0000] "GET / HTTP/1.1" 301 0 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0"
172.22.0.4 - - [16/Oct/2019:19:51:54 +0000] "GET / HTTP/1.1" 301 0 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0"

Вопрос: есть ли что-то не так с конфигурацией Nginx? Если нет, то что может быть причиной этого? Мне нужно что-то вроде Fiddlerили OWASP Zap для этого (швы как излишки и что-то, с чем Nginx должен справиться, не так ли)?

...