Перенаправление app.example.com
(который на самом деле http://app.example.com:80/
) на http://192.168.1.2:12345/some/path
невозможно только при использовании DNS. Проблема очевидна: хотя вы можете разрешить app.example.com
разрешить 192.168.1.2
, служба, на которую вы хотите перенаправить, не прослушивает порт 80 или даже корневой путь (/
).
Поэтому нам нужно что-то прослушивать на порте 80 и перенаправлять пользователей на правильный порт и путь. Теоретически, любой веб-сервер может сделать это. Я не буду углубляться в основанные на именах виртуальные хосты здесь, но они могут быть необходимы при перенаправлении для нескольких служб.
Обычный веб-сервер может обслуживать этот HTML-файл для перенаправления пользователей:
<html>
<head>
<title>Redirecting...</title>
<meta http-equiv="refresh" content="0; url=http://app.example.com:12345/some/path">
</head>
<body>
<h1>Redirecting...</h1>
</body>
</html>
Более сложные настройки могут выполнять перенаправление с использованием заголовков HTTP, т.е. на Apache:
Redirect permanent / http://app.example.com:12345/some/path
Веб-сервер не должен работать на той же машине. Он может перенаправить на любой действительный URL.