У меня один IP-адрес, скажем, 10.10.55.55
Я хочу, чтобы моя виртуальная машина использовала определенный порт всякий раз, когда используется определенный URL-адрес, но без необходимости указывать порт.
Поэтому вместо того, чтобы говорить mydev.net:8200, я хотел бы сказать mydev.net (чтобы попасть в docroot) и указать порт. Как я могу это сделать с Apache 2?
<VirtualHost *:8200>
ServerAdmin me@mydev.net
DocumentRoot /var/www/html-8200/
ServerName mydev.net
ServerAlias www.mydev.net
AllowEncodedSlashes On
RewriteEngine on
RewriteOptions Inherit
</VirtualHost>
К сожалению, это невозможно.
Порт, к которому подключается клиент, определяется клиентом, а не сервером - Apache не имеет возможности изменить это поведение в браузере клиента. Порт 80 всегда подразумевается для http://
, а порт 443 всегда является подразумеваемым портом для https://
.
Ты мог 30x
перенаправить клиента на :8200
или обратные прокси-соединения от 80 до 8200 ... но эти подходы, вероятно, будут бессмысленными, в зависимости от того, что вы пытаетесь выполнить.
Вы можете использовать mod_alias или mod_proxy и настроить что-то вроде:
какой apache будет указывать на другой docroot
Alias /somepath "/usr/local/www/somepath"
пока http://mydev.net все равно укажет на обычный docroot
или, если служба, работающая на порту 8200, не является apache, а какой-то другой службой, к которой вы снова хотите получить доступ через порт по умолчанию, вы можете использовать mod_proxy для обратного прокси-сервера запросов с порта 80 на 8200
Если вы хотите, чтобы один и тот же домен указывал на что-то отличное только от вашего компьютера (например, вы хотите протестировать кодовую базу разработки своего веб-сайта, но на реальном домене), единственный реальный выбор - настроить вторую версию сайта. на другом IP-адресе, а затем используйте локальный хозяева файл на клиентском компьютере, чтобы неверно перенаправить доменное имя второго IP-адреса.