Перенаправление субдоменов - работает только первый субдомен

У меня есть два домена, работающих на 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>
0
задан 16 September 2020 в 19:42
1 ответ

Наконец-то я получил эту работу, и я также заработал 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>
0
ответ дан 16 September 2020 в 13:47

Теги

Похожие вопросы