У меня есть два домена, работающих на Apache 2.2 для Windows.
Домен 2 имеет как безопасный, так и небезопасный доступ, и работает нормально.
Домен 1 имеет домен и четыре домена. поддомены. Поддомены перенаправляют на порты другого сервера в той же сети. У каждого поддомена есть своя собственная запись A в DNS. Домен и субдомены:
domain1.org media.domain1.org video.domain1.org dsm.domain1.org photo.domain1.org
Домен 1 не используется. Все поддомены перенаправляют на порты на NAS.
Работает только первый блок виртуального хоста. Неважно, какой из поддоменов указан первым. Если media.domain1.org указан первым, media.domain1.org будет перенаправлять правильно, но видео, dsm и photo также будут перенаправлены на порт, назначенный для media.domain1.org.
Это проблема конфигурации Apache или проблема с DNS?
Спасибо
Edit 1
Я добавил NameVirtualHost сегодня утром, и он ничего не делает. Я пробовал использовать как внутренние, так и внешние IP-адреса.
Я не хочу обновляться до Apache 2.4. Я начал с 2.4 и не смог получить доступ к каталогу для домена 2. Использование Require All Granted приводило к тому, что сервер не запускался.
Я начал с операторов Proxy, и они вообще не работали. У меня есть загруженные прокси-модули, но они не пересылают ни одного порта на NAS.
Я буду беспокоиться о том, как получить доступ к NAS, когда у меня сработает разделение поддоменов.
Вот мой виртуальный хост структура:
<VirtualHost *:80>
ServerName media.domain1.org
Redirect / http://domain1.org:7007/
ErrorLog c:/webroot/domain1/logs/error.log
CustomLog c:/webroot/domain1/logs/access.log common
</VirtualHost>
<VirtualHost *:80>
ServerName dsm.domain1.org
Redirect / http://domain1.org:5000/
ErrorLog c:/webroot/domain1/logs/error.log
CustomLog c:/webroot/domain1/logs/access.log common
</VirtualHost>
<VirtualHost *:80>
ServerName video.domain1.org
Redirect / http://domain1.org:6006/
ErrorLog c:/webroot/domain1/logs/error.log
CustomLog c:/webroot/domain1/logs/access.log common
</VirtualHost>
<VirtualHost *:80>
ServerName domain2.com
Serveralias www.domain2.com
ErrorLog c:/webroot/domain2/logs/error.log
CustomLog c:/webroot/domain2/logs/access.log common
DocumentRoot c:/webroot/domain2
<Directory c:/webroot/domain2>
Options Indexes FollowSymLinks Includes
DirectoryIndex index.html index.htm
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:443>
ServerName domain2.com
Serveralias www.domain2.com
DocumentRoot c:/webroot/domain2
<Directory c:/webroot/domain2>
Options Indexes FollowSymLinks Includes
DirectoryIndex index.html index.htm
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog c:/webroot/domain2/logs/error.log
CustomLog c:/webroot/domain2/logs/access.log common
SSLEngine on
SSLCertificateFile "c:/apache2/sslkey/certificate.crt"
SSLCertificateKeyFile "c:/apache2/sslkey/private.key"
SSLCertificateChainFile "c:/apache2/sslkey/ca_bundle.crt"
</VirtualHost>
Наконец-то я получил эту работу, и я также заработал Proxypass с тем же исправлением.
Для добавления NameVirtualHost требуется IP-адрес, и его нельзя сделать с помощью подстановочного знака. Как только IP-адрес указан здесь, этот же адрес также должен быть в операторах Listen.
Это не работало с моим внешним IP-адресом, но работало с моим внутренним IP-адресом. Итак, вот рабочая конфигурация:
NameVirtualHost 192.168.x.xxx:80
Listen 192.168.x.xxx:80
Listen 192.168.x.xxx:443
<VirtualHost 192.168.x.xxx:80>
ServerName media.domain1.org
ProxyPass / http://192.168.x.xxx:7007/
ProxyPassReverse / http://192.168.x.xxx:7007/
</VirtualHost>