Как мне создать виртуальные хосты для разных портов на Apache?


20

Я хочу, чтобы apache сделал это>

mydomain.com:80  --- opens var/www1
mydomain.com:81  --- opens var/ww2
mydomain.com:82  --- opens var/www3

Проблема в том, что я не знаю, открыты ли эти порты в Linux (как я могу проверить?)

А если нет, как мне открыть их в брандмауэре и заставить слушать Apache?

Я пытался сделать это

> iptables -A RH-Firewall-1-INPUT -m  NEW -m tcp -p tcp –dport 81 -j ACCEPT
iptables v1.3.5: Couldn't load match `NEW':/lib64/iptables/libipt_NEW.so: cannot open shared object file: No such file or directory

и я проверил порты ... похоже, httpd слушает ... но я не знаю, почему я не могу нажать свой URL

> netstat -tulpn | less
tcp        0      0 :::80       :::*      LISTEN      6840/httpd
tcp        0      0 :::81       :::*      LISTEN      6840/httpd
tcp        0      0 :::82       :::*      LISTEN      6840/httpd

Ответы:


39

Чтобы расширить ответ Джеффа, вам понадобится что-то подобное в вашей конфигурации apache.

Listen 80
Listen 81
Listen 82

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot /var/www1
ServerName www.example1.com
</VirtualHost>

NameVirtualHost *:81
<VirtualHost *:81>
DocumentRoot /var/www2
ServerName www.example2.org
</VirtualHost>


NameVirtualHost *:82
<VirtualHost *:82>
DocumentRoot /var/www3
ServerName www.example3.org
</VirtualHost>

Я сделал именно это ... но все еще не люблю
kodeninja

Вы можете подключиться к любому из этих портов локально и / или удаленно?
sreimer

NameVirtualHostне имеет никакого эффекта при использовании с Apache 2.4
Вахид Амири

NameVirtualHost, кажется, оказывает влияние на меня, и я использую Apache 2.4: без NameVirtualHost «<VirtualHost *: number>» недостаточно для предотвращения ответа VirtualHost на других портах.
rsethc

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.