В Nginx мы пытались перенаправить URL следующим образом:
http://example.com/some/path -> http://192.168.1.24
где пользователь все еще видит исходный URL в своем браузере. Как только пользователь будет перенаправлен, скажем, он щелкнет ссылку /section/index.html
, мы бы хотели, чтобы он отправил запрос, который приведет к перенаправлению
http://example.com/some/path/section/index.html -> http://192.168.1.24/section/index.html
и снова сохраняем исходный URL.
В наших попытках использовались различные решения, использующие прокси-серверы и правила перезаписи, и ниже показана конфигурация, которая приблизила нас к решению (обратите внимание, что это конфигурация веб-сервера для example.com
веб-сервера). Тем не менее, есть еще две проблемы с этим:
- Он не выполняет перезапись должным образом, поскольку URL-адрес запроса, полученный веб-сервером,
http://192.168.1.24
содержит/some/path
и, следовательно, не обслуживает требуемую страницу. При наведении на ссылку, когда страница обслуживается,
/some/path
отсутствует в URLserver { listen 80; server_name www.example.com; location /some/path/ { proxy_pass http://192.168.1.24; proxy_redirect http://www.example.com/some/path http://192.168.1.24; proxy_set_header Host $host; } location / { index index.html; root /var/www/example.com/htdocs; } }
Мы ищем решение, которое включает только изменение конфигурации веб-сервера example.com
. Мы можем изменить конфигурацию 192.168.1.24
(также Nginx), однако мы хотим попытаться избежать этого, потому что нам нужно будет повторить эту настройку для сотен различных серверов, доступ к которым осуществляется через прокси example.com
.