Рейтинг:0

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

флаг zw

Короткий: У меня есть два разных сервера за прокси-сервером 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 выглядит так

События {}

http {
    сервер {
        имя_сервера server.app;
        слушать 443 ssl;
        ssl_certificate /etc/nginx/fullchain.pem;
        ssl_certificate_key /etc/nginx/privkey.pem;
        error_log /etc/nginx/nginx.log отладка;

        местоположение/клиент {
            proxy_pass http://docker-server-2:8090/client;
            proxy_set_header Хост $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 $ схема;
        }

        место расположения / {
            proxy_pass http://docker-server-1:80;
            proxy_set_header Хост $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 $ схема;
        }
    }
}

Когда я ввожу «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», но я не могу понять, почему. Вот почему я предполагаю, что браузеры являются частью проблемы, но как я могу сказать им, чтобы они не делали это перенаправление?

djdomi avatar
флаг za
керлинг пробовал?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.