Как открыть другой сайт не меняя текущий адрес при проксирование в nginx?

Делаю проксирование с локального хоста на google. Задача слудующая:

В браузере ввожу proxy.localhost, нажимаю enter
Открывается google.com, но в браузере в адресной строке остаётся proxy.localhost (т.е. выполняется проксирование)
ПРОБЛЕМА. У меня работает как в случае редиректа, а не проксирования, т.е. после пункта 1 открывается google и запись в адресной строке меняется с proxy.localhost на https://www.google.com.

ВОПРОС. Как сделать так, чтобы адрес оставался proxy.localhost, но открывался https://www.google.com ?

Помогите пожалуйста, перепробовал множество вариантов, откатил до более менее рабочего, вот мой актуальный код:
server {
	listen *:80;
	server_name proxy.localhost;
	location / {
		 proxy_pass https://google.com/;
	}
}
  • Вопрос задан
  • 91 просмотр
Пригласить эксперта
Ответы на вопрос 2
@MadridianFox
Web-программист, многостаночник
Вообще poxy_pass делает ровно то, что вам нужно.
Посмотрите что именно отвечает сервер, когда вы делаете запрос. Может быть такое, что ваш nginx правильно проксирует, но сервер гугла видит, что запросе что-то не так, и возвращает редирект, конечно же на свой домен, а не на ваш. В таком случае браузер сделает ещё один запрос и поменяет домен в адресной строке.

Если это так, попробуйе добавить заголовок с хостом гугла при обращении к гуглу:
proxy_pass https://google.com/;
proxy_set_header Host google.com;
Ответ написан
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Вообще-то
1) любой JavaScript может проверить и переписать URL страницы, на которой запущен;
2) любая ссылка на странице может перекидывать на оригинальный сайт;
3) а ещё есть ограничения по CORS;
4) а HTML meta <base> случайно не для браузеров придуман?

Но ваша храбрость похвальна! Выше знамя, последователи Дон-Кихота!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы