Я хочу настроить винду хозяева файл для отправки запросов хоста на основе IP-адреса + портов.
Например:
127.0.0.1:80 www.site1.com
127.0.0.1:8080 www.sitetwo.com
Потому что у меня Apache прослушивает порт 8080, а IIS - порт 80 (по умолчанию).
Итак, я думаю, что лучший способ сделать это - изменить hosts
файл. Это ни на что не влияет. Я не получаю ни ошибок, ни сообщений.
Вы не можете. Файл hosts - это всего лишь hosts. Это эквивалент «короткозамкнутого» DNS на вашем локальном компьютере. DNS также не может отправлять вас в порты.
Чтобы достичь того, что вы пытаетесь сделать, вам нужно настроить виртуальный хостинг под IIS или Apache и использовать его (на основе заголовка HTTP Host:), чтобы служба могла решить, какой сайт представить. Однако это не поможет вам, если вы хотите делать это одновременно с IIS и Apache.
hosts
файл предназначен только для разрешения имени хоста<hostname>:<port>
, значения по умолчанию портировать 80
127.0.0.1
он же localhost
(определено в файле hosts).чтобы избежать конфликтов между, возможно, другими существующими / работающими серверами, приложение обычно позволяет вам изменить порт, но не IP-адрес.
2а. Если вы можете изменить IP-адрес сервера на другой в loopback зарезервированное адресное пространство 127.0.0.0/8
, то вы, вероятно, не будете пытаться устанавливать порты в файле hosts.
Вы можете обойти это, используя Окна включены Сетевой инструмент netsh
в качестве прокси порта.
example.app
| <--browser defaults to port 80
+--> example.app:80
| <--Hostname resolution by Hosts File
+--> 127.65.43.21:80
| <--Link by netsh Utility
+--> 127.0.0.1:8081
localhost:8081
127.65.43.21 example.app
127.0.0.0/8
может быть использован.127.65.43.21:80
не занят другой службой.netstat -a -n -p TCP | grep "LISTENING"
netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
http://example.app
Ноты:
- Эти команды / модификации файлов должны выполняться с Права администратора
- netsh portproxy нужны библиотеки ipv6 даже только для использования v4tov4, обычно они также будут включены по умолчанию, в противном случае установите их с помощью следующей команды: netsh interface ipv6 install
Ты можешь см. запись вы добавили с помощью команды:
netsh interface portproxy show v4tov4
Ты можешь удалить запись с помощью следующей команды:
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21
Примечание: этот ответ является копией моего ответа, обсуждаемого в этот аналогичный вопрос / ответ о stackoverflow.
Нет, не можешь. Если он не работает, значит, что-то еще не так.
127.0.0.1 site.com
127.0.0.1 www.site.com
Я полагаю, это для коробки разработки?
DNS преобразует site.com и www.site.com в localhost, если вы не выполняете проксирование своих DNS-запросов. Вам, вероятно, следует обратиться в ServerFault за помощью по настройке веб-сервера, это наиболее вероятная проблема.
Вы можете сделать это с помощью Скрипач. С участием Скрипт Fiddler, можно много удивительных вещей.
Если вы установите такие хосты
127.0.0.1 www.site1.com # Port 80
127.0.0.1 www.sitetwo.com # Port 8080
Добавьте это в CustomRules.js(открыть CustomRules.js, выберите Настроить правила на скрипаче Правила меню)
// this method is already exist
static function OnBeforeRequest(oSession: Session) {
if (oSession.host.toLowerCase() == "www.sitetwo.com")
oSession.host = "www.sitetwo.com:8080";
...
}
Затем Fiddler преобразует хост, и вы подключитесь к порту 8080.
Вы используете серверы только для локальной разработки? Если это так, вы можете настроить Apache на прослушивание 127.0.0.2:80 и перенаправить его с файлом hosts на желаемое доменное имя.
Как и в случае с другими ответами, в файле хоста нет информации о порте, но у вас может быть страница, которая перенаправляет смещенную на заголовок, например apache или IIS, для виртуального хостинга на основе имени. Проверьте заголовок и при необходимости перенаправьте. Однако я не вижу в этом ценности, поскольку вы изобретаете колесо. Apache поддерживает виртуальный хостинг на основе портов, и я предполагаю, что это делает iis.
Ваша цель иметь машину для разработки, на которой обе работают, это для производственной ситуации.
Следуй этим шагам:
Install Fiddler2
Navigate to Fiddler2 menu:- Tools > HOSTS.. (Click to select)
Add a line like this:-
localhost:8080 www.mydomainname.com
Save the file & then checkout www.mydomainname.com in browser.
https://stackoverflow.com/questions/8652948/using-port-number-on-windows-xp-host-file
Это то, что вы можете сделать, это будет полезно только для местного развития.
файл hosts:
В IIS создайте новый веб-сайт и для local.site1.com и local.site2.com
Тебе хорошо идти. Просто убедитесь, что порты, которые вы использовали, не используются другими процессами, а также открыты из брандмауэра, антивируса и т. Д.
После этого вы можете использовать следующие URL-адреса для доступа к веб-сайтам с локального компьютера или из локальной сети.