Обратный прокси-сервер Nginx направляет подкаталог к ​​корневому пути прокси-сервера на первой странице при каждом посещении браузера

Кратко: у меня есть два разных сервера за прокси-сервером nginx. Когда я пытаюсь связаться с одним из них, меня всегда перенаправляют на другой, который находится в корневом каталоге. Это происходит ОДИН РАЗ. Журналы подразумевают, что Firefox/Chrome не отправляет запрос GET в nginx, когда я ввожу адрес в первый раз. Когда я ввожу URL-адрес во второй раз в сеансе Firefox/Chrome, я попаду на правильный сервер.

Длиннее: в моей настройке у меня есть два сервера в сети докеров, где «https://server.app/» должен быть перенаправлен на «http://docker-server-1:80» и «https://server.app». /client» следует передать на «http://docker-server-2:8090/client».

Мой конфиг nginx выглядит так

events {}

http {
    server {
        server_name         server.app;
        listen              443 ssl;
        ssl_certificate     /etc/nginx/fullchain.pem;
        ssl_certificate_key /etc/nginx/privkey.pem;
        error_log           /etc/nginx/nginx.log debug;

        location /client {
            proxy_pass http://docker-server-2:8090/client;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }

        location / {
            proxy_pass http://docker-server-1:80;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
}

Когда я ввожу «https://server.app/client», я попаду на правильный сервер, когда а) я открою эту страницу в режиме инкогнито Firefox/Chrome, б) я использую простой и наивный инструмент, такой как curl/wget, c ) Я очистил кеш Firefox/Chrome, и они никогда раньше не видели «https://server.app» или d) я добавляю index.html и ввожу «https://server.app/client/index.html».

Когда я захожу на «https://server.app» и позже пытаюсь открыть «https://server.app/client», страница «https://server.app» будет загружаться ОДИН РАЗ за сеанс браузера. Когда я ввожу URL-адрес подкаталога во второй раз, я попаду на правильный сервер, пока не закрою браузер и не открою его снова. Затем я снова ОДИН РАЗ закончу на «https://server.app», когда введу «https://server.app/client».

Странная часть заключается в том, что я не вижу GET-запроса в журнале nginx при входе в «https://server.app/client» с Firefox/Chrome без инкогнито. Кажется, что оба браузера используют кешированную версию «https://server.app», когда я ввожу «https://server.app/client», но я не могу понять, почему. Вот почему я предполагаю, что браузеры являются частью проблемы, но как я могу сказать им, чтобы они не делали это перенаправление?

Обратный прокси-сервер Nginx Docker

аленеум

0

Добавить комментарий

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