Два веб-приложения на одном домене

Два веб-приложения на одном домене

Я установил 2 разных веб-приложения на свой выделенный Debian 6. Первое находится в /var/www/cast, а назначенный URL-адрес - `

example.example.com/cast

`

Я установил вторую, которая называется Airtime. Вторая установка не предлагала путь установки, поэтому она установилась автоматически где-то. Теперь, когда я пытаюсь войти в первую, я получаю вторую. Если я пытаюсь

example.example.com/cast

это ведет к Airtime. если я пойду в

пример.example.com

это также ведет туда..

Это записи в файле airtime-vhost

<VirtualHost *:80>
      ServerName example.example.com
      #ServerAlias www.example.com

      ServerAdmin [email protected]

      DocumentRoot /usr/share/airtime/public
      DirectoryIndex index.php

      SetEnv APPLICATION_ENV "production"

      <Directory /usr/share/airtime/public>
              Options -Indexes FollowSymLinks MultiViews
              AllowOverride All
              Order allow,deny
              Allow from all
      </Directory>
</VirtualHost> 

Есть мысли, как мне дать им обоим уникальный URL?

решение1

Похоже, что Airtime имеет собственный веб-сервер, а вот «cast» (что бы это ни значило) — нет. Это правда?

В любом случае, общую проблему можно решить многими способами:

  • Вы можете запустить оба приложения на одном веб-сервере, если это возможно. Это было бы невозможно, только если одно из приложений зависит от очень специфической версии веб-сервера (предполагая, что Apache основан на файле конфигурации Airtime), которая несовместима с другим приложением. Но если вы можете загрузить все необходимые модули Apache в один экземпляр Apache, достаточный для запуска обоих приложений, тогда да, вам просто нужно поместить каждое приложение в отдельный путь в корне документа, например /var/www/airtime и /var/www/cast, и это будет "просто работать". В качестве альтернативы вы можете сопоставить любой каталог в файловой системе с корнем документа, либо с помощью simlinking в /var/www, либо с помощью директив конфигурации Apache.

  • Вы можете запустить два разных веб-сервера, но запустить их на разных портах. Это изменит URL-адрес по крайней мере на один из экземпляров, чтобы потребовать номер порта после домена, например, http://example.com:8080/blahгде :8080— это порт (я рекомендую выбрать значение больше 1024, но меньше 65000, и погуглить номер перед его использованием, чтобы убедиться, что это не известный порт для службы, которую вы уже используете).

  • Вы можете запустить два разных веб-сервера, но запустить их на разных IP-адресах. Вы можете оставить порт по умолчанию 80 (или 443 для https), но вам понадобятся два разных IP-адреса.

  • Вы можете запустить два разных веб-сервера, но запустить их на одном IP-адресе, но на разных поддоменах. Затем вы можете использовать URL Rewriting для автоматического сопоставления запросов на http://airtime.example.comприложение airtime и с http://cast.example.comприложения cast.

  • Для всего вышеперечисленного вы можете сделать это даже в пределах одного веб-сервера, если конфигурация достаточно надежна, а веб-сервер Apache достаточно надежен, чтобы сделать все вышеперечисленное в пределах одного экземпляра веб-сервера, хотя вам понадобятся некоторые более экзотические настройки конфигурации для некоторых вариантов. Обратите внимание, что я настоятельно рекомендую попробовать запустить все это в пределах одного экземпляра веб-серверапервый, поскольку этот способ более гибкий и простой в управлении, плюс вы, вероятно, сможете настроить его, не беспокоясь о портах или IP-адресах, которые усложняют жизнь вашим пользователям в первом случае и вам во втором.

Проблема с конфигурацией Airtime заключается в том, что она пытается быть vhost для, *:80что означает, что каждый запрос к вашему серверу на порту 80 будет отображаться в корне документа для airtime, т. е /usr/share/airtime/public. Вам нужно получить и castприложение, и airtimeприложение в одном и том же vhost, или же ограничить vhost airtime чем *:80-то вроде того airtime.example.com:80, чтобы только запросы к этому поддомену передавались в airtime.

Ваш конфиг Apache, который встроен в Debian, находится в /etc/apache2/каталоге, поэтому перейдите туда и посмотрите на apache.conf. Обратите внимание, что там также есть <VirtualHost *:80>директива. Ну, вы не можете иметь два виртуальных хоста, претендующих на обработку всех запросов на порту 80; только один из них может победить. В этом и заключается проблема.

Связанный контент