Назад | Перейти на главную страницу

Конфигурация виртуального хоста Apache не работает для одного хоста

Я новичок в настройке Apache. У меня есть два приложения, которые мне нужно запускать локально, они работают на разных серверах - одно на jboss, а другое на Jetty. Теперь они оба используют один и тот же сервер Apache для обслуживания статических файлов.

Я решил проблемы с jboss и причальным сервером для порта http (8080) и порта ajp (8009). Оба сервера запускаются без конфликтов портов. Затем пришла часть настройки Apache.

В httpd.conf есть определение для server1 (app1 на jboss), поэтому я добавил ссылку на vhostsfile и ввел конфигурацию для server2 (app2 на пристани). Проблема в том, что если у меня есть ссылка на vhostsfile, app2 работает нормально, но app1 никогда не разрешается Apache - «Запрошенный URL / us / en_us не найден на этом сервере»

Сначала я подумал, что, возможно, мне следует поместить оба определения сервера в файл vhosts, и я так и сделал. Поместите определение для server1 ниже server2, но - app1 все еще не загружается, пока app2 загружается, как раньше. Запросы к app1 отображали журналы доступа для app2.

Затем в файле vhosts я поменял местами определения, т.е. поместил определение server1 выше server2, теперь оба приложения не загружались в браузере.

Надеюсь, я здесь не слишком запутался. App1 работает только с определением server1 (без vhost). После добавления определения server2 (в vhosts) app1 перестает работать, но app2 работает. Кроме того, определение какого-либо сервера выше другого в файле vhosts перехватывает запросы к обоим приложениям.

NameVirtualHost *:80

    <VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.com
    DocumentRoot "C:/env/local/cust/httpd/docs/dummy-host.com"
    ServerName dummy-host.com
    ServerAlias www.dummy-host.com
    ErrorLog "logs/dummy-host.com-error.log"
    CustomLog "logs/dummy-host.com-access.log" common
</VirtualHost>

<VirtualHost app2.local.com:80>
    ServerAdmin app2@local.com
    DocumentRoot "C:/app2"
    ServerName app2.local.com
    ErrorLog "logs/store-error.log"
    CustomLog "logs/store-access.log" common    
    <Directory "C:/app2">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost app1.local.com:80>
   ServerAdmin app1@local.com
   DocumentRoot "C:/workspace/app1"
   ServerName app1.local.com
   ErrorLog "logs/app1-error.log"
   CustomLog "logs/app1-access.log" common

   <Directory "C:/app1/">
       Options Indexes FollowSymLinks
       AllowOverride all
       Order allow,deny
       Allow from all
   </Directory>
</VirtualHost>

Вы нарушаете виртуальный хостинг на основе имен, имея имена хостов в <VirtualHost> определения.

+ Изменить <VirtualHost app1.local.com:80> и <VirtualHost app2.local.com:80> к <VirtualHost *:80>, и убедитесь, что у вас есть NameVirtualHost *:80 где-то в вашем конфиге.