Виртуальные хосты на Apache с именем хоста для интрасети

961
bmac

У меня были проблемы с тем, чтобы обернуть голову вокруг того, что мне нужно делать здесь на работе, так что это будет моя попытка сделать это.

У меня есть сервер для собственного использования, где у меня работает сервер WAMP, и я выяснил, как подключить его к сети и перейти к нему. Цель состоит в том, чтобы сделать его только интрасетью, и я также обнаружил, что (первые 3 части IP в необходимом разделе httpd.confфайла) и проверил это. Имея это в виду, у меня есть 2 проекта, которые я хотел бы разместить там, используя один и тот же IP-адрес, а затем сделать их доступными по имени хоста от людей внутри компании.

Поэтому, если я назову их projectAи у projectBменя будет два виртуальных хоста с именем сервера projectAи они projectBвключены в файл httpd.conf на сервере. Также из-за чего-то, что мы запускаем на работе, я слушаю порт 8080 вместо порта 80.

Для краткосрочного тестирования у меня есть ноутбук с записью в файле hosts, сопоставляющей IP-адрес с именем хоста, для которого я собираюсь, давайте назовем его hostC.

То, что я хотел бы сделать, это доступ projectAи projectBвключение hostCв качестве разумного процесса, набрав что-то вроде //hostC/projectA/projectA/fileA.phpв строке поиска, но то, что я видел, показывает имена серверов как нечто вроде того, www.projectA.comчто затем вывело бы его из баннера хоста. Так могу ли я делать то, что я хочу, или я думаю об этом совершенно неправильно?

Мои мысли, если то, что я делаю не так в том, что либо я должен был бы иметь два узла, отображенные в моем файле хоста (будет представлена в DNS - сервере компании), они должны быть больше как //hostA/projectAindex.phpи //hostB/projectBindex.phpили просто держать его в качестве одного хоста и предоставить страницу, которая разделяет два разных проекта, такие как //hostA/projectAindex.phpи //hostA/projectBindex.php. Один из них имеет больше смысла?

Я много об этом читал и изучал документацию по Apache, я просто не совсем уверен, что это значит и как об этом думать.

0
Весь смысл виртуальных хостов на основе имен заключается в том, что вы можете получить доступ к различным сайтам на одном сервере в соответствии с их именем хоста. Если вы не * хотите * получить доступ к серверу по имени хоста (например, http: // projectA /), тогда нет смысла использовать виртуальный хостинг на основе имен. Если вам нужен только http: // hostC / projectA, то вам нужны папки, а не виртуальные хосты. qasdfdsaq 8 лет назад 1
** «Цель состоит в том, чтобы сделать его только интранетом…» ** Что это значит? Ваша машина и веб-сервер будут доступны в локальной сети компании? Или вы задумываетесь над концепцией хостинга вашего ПК? Потому что WAMP / MAMP / LAMP, как это, установленное на вашем рабочем столе, по сути является только рабочим столом. Все это звучит как недоразумение с вашей стороны. JakeGould 8 лет назад 0
Это может быть. У нас есть две локации с разными подсетями, и мне нужно, чтобы они были доступны только из них. Я подключил свой WAMP к сети и ограничил его подсетью моего конкретного местоположения, поэтому я считаю, что простое добавление второго в файл Apache CONF даст мне то, что я хочу, находясь в интрасети. Если я полностью выключен, дайте мне знать, и спасибо за вклад уже. bmac 8 лет назад 0

1 ответ на вопрос

1
Anaksunaman

If you want to access HostC as a hostname (e.g. hostc.local) from anything other than a computer with a modified hosts file, you will have to set up a DNS server to map this name to your web server's IP address.

If HostC can be the IP address of the server, then you can just use that.

Assuming either case, you can put sub-folders (ProjectA and ProjectB) in HostC (your web server) to access http://HostC/ProjectA/fileA.php and http://HostC/ProjectB/index.php. You do not need virtual hosts for this.

If you want http://HostA/ProjectA/fileA.php and http://HostB/ProjectB/index.php, then you will need to define HostA and HostB in DNS (to access them from any computer without a modified hosts file, assuming you do not wish to access them via IP address/port combinations). You will need use virtual host entries assuming HostA and HostB both map to the web server on HostC. You will only need to map HostC in this case if you want to access HostC as a local domain name, not an IP address.

You may want virtual hosts as well to access services via reverse proxyies to map, say, something like http://HostD:80/directoryD/ to HostD:8080/directoryF/ or ex. 123.123.123.123.