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