The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Apache + Проблема с виртуальными хостами"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (Apache, http-серверы)
Изначальное сообщение [ Отслеживать ]

"Apache + Проблема с виртуальными хостами"  +/
Сообщение от melmaxnvk email(ok) on 13-Окт-08, 05:31 
FreeBSD 6.2
Apache/2.2.4

На одном сервере есть 4 сайта: один глобальный и три локальных. Реализовал с помощью name-based виртуальных хостов.
При запуске апача ошибок не возникает, а вот при последовательном просмотре сайтов (global_domain.ru, www.global_domain.ru, local1.global_domain.ru, local2.global_domain.ru, local3.global_domain.ru) обязательно на каком-то вываливается ошибка "Forbidden". Перезапуск апача лечит проблему, но опять же она может возникнуть для любого другого сайта в списке.

Имена хостов резолвятся ДНСом правильно.

cat /usr/local/etc/apache22/extra/httpd-vhosts.conf

NameVirtualHost <EXT_IP>:80

#Default, чтобы не заходили по <EXT_IP>
<VirtualHost "<EXT_IP>:80">
    ServerAdmin adm@localhost
    DocumentRoot "/usr/local/www/data-dist/"

    <Directory "/usr/local/www/data-dist/">
      Options All
      AllowOverride All
      Order Deny,Allow
      Deny From All
    </Directory>
</VirtualHost>

#global_domain.ru
<VirtualHost "<EXT_IP>:80">
    ServerAdmin adm@localhost
    DocumentRoot "/usr/local/www/data-dist/global_domain.ru/"
    ServerName global_domain.ru
    ServerAlias www.global_domain.ru
    ErrorLog /var/log/httpd/global_domain.err
    CustomLog /var/log/httpd/global_domain.log combined
    LogLevel info

    <Directory "/usr/local/www/data-dist/global_domain.ru/">
      AllowOverride All
      Order Allow,Deny
      Allow From All
    </Directory>
</VirtualHost>

#local1.global_domain.ru
<VirtualHost "<EXT_IP>:80">
    ServerAdmin adm@localhost
    DocumentRoot "/usr/local/www/data-dist/local1.global_domain.ru/"
    ServerName local1.global_domain.ru
    ErrorLog /var/log/httpd/local1.global_domain.err
    CustomLog /var/log/httpd/local1.global_domain.log combined

    <Directory "/usr/local/www/data-dist/local1.global_domain.ru/">
      AllowOverride All
      Order Deny,Allow
      Deny From All
      Allow From 192.168.0.
    </Directory>
    EnableSendfile Off
</VirtualHost>

#local2.global_domain.ru
<VirtualHost "<EXT_IP>:80">
    ServerAdmin adm@localhost
    DocumentRoot "/usr/local/www/data-dist/local2.global_domain.ru/"
    ServerName local2.global_domain.ru
    ErrorLog /var/log/httpd/local2.global_domain.err
    CustomLog /var/log/httpd/local2.global_domain.log combined

    <Directory "/usr/local/www/data-dist/local2.global_domain.ru/">
      AllowOverride All
      Order Deny,Allow
      Deny From All
      Allow From 192.168.0.
    </Directory>
</VirtualHost>

#local3.global_domain.ru
<VirtualHost "<EXT_IP>:80">
    ServerAdmin adm@localhost
    DocumentRoot "/usr/local/www/data-dist/local3.global_domain.ru/"
    ServerName local3.global_domain.ru
    ErrorLog /var/log/httpd/local3.global_domain.err
    CustomLog /var/log/httpd/local3.global_domain.log combined
    LogLevel info

    <Directory "/usr/local/www/data-dist/local3.global_domain.ru/">
      AllowOverride All
      Order Deny,Allow
      Deny From All
      Allow From 192.168.0.
      #Allow From All
    </Directory>
    EnableSendfile Off
</VirtualHost>

PS Та же проблема была в топике https://www.opennet.ru/openforum/vsluhforumID8/5864.html но решения не было написано

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Apache + Проблема с виртуальными хостами"  +/
Сообщение от Pahanivo email(??) on 13-Окт-08, 15:00 
Начни с просмотра логов!
И не трать драгоценное время людей.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Apache + Проблема с виртуальными хостами"  +/
Сообщение от melmaxnvk email(??) on 13-Окт-08, 23:20 
>Начни с просмотра логов!
>И не трать драгоценное время людей.

Может я не ясно написал? "При запуске апача ошибок не возникает" - это значит что ни в консоли ни в логах ошибок нету. Я не трачу ваше драгоценное время, не понятно зачем вы вообще отвечали на топик. Я задаю вопрос тем кто сталкивался с данной проблемой, а не дилетантам вроде вас.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Apache + Проблема с виртуальными хостами"  +/
Сообщение от Pahanivo email(??) on 14-Окт-08, 00:24 
> обязательно на каком-то вываливается ошибка "Forbidden".

Это твои слова?
Дак посмотри access.log и error.log в момент форбидена, а не при старте апача.
Делитант ))

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Apache + Проблема с виртуальными хостами"  +/
Сообщение от melmaxnvk email(??) on 14-Окт-08, 05:02 
>> обязательно на каком-то вываливается ошибка "Forbidden".
>
>Это твои слова?
>Дак посмотри access.log и error.log в момент форбидена, а не при старте
>апача.
>Делитант ))

Естественно, эта ошибка есть в логе (httpd.err). Пишется она так:

[error] [client 192.168.0.10] client denied by server configuration: /usr/local/www/data-dist/

Я даже знаю на какой строчке конфига сервер вываливает Forbidden:
/usr/local/etc/apache22/extra/httpd-vhosts.conf

#Default, чтобы не заходили по <EXT_IP>
<VirtualHost "<EXT_IP>:80">
    ServerAdmin adm@localhost
    DocumentRoot "/usr/local/www/data-dist/"

    <Directory "/usr/local/www/data-dist/">
      Options All
      AllowOverride All
      Order Deny,Allow
-->  Deny From All  <-----
    </Directory>
</VirtualHost>

1) Ошибка всегда возникает на разном вирт. хосте - нет никакой закономерности, как это можно объяснить?
2) "Проблемную" строчку убрать нельзя, т.к.
    а) нужно чтобы не возможно было заходить на вирт. хосты как http://EXT_IP/local1
    б) нужно чтобы доступ к был вирт. хостам только по hostname.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Apache + Проблема с виртуальными хостами"  +/
Сообщение от Pahanivo email(??) on 14-Окт-08, 15:27 
1) Ошибка всегда возникает на разном вирт. хосте - нет никакой закономерности, как это можно объяснить?
2) "Проблемную" строчку убрать нельзя, т.к.
    а) нужно чтобы не возможно было заходить на вирт. хосты как http://EXT_IP/local1
    б) нужно чтобы доступ к был вирт. хостам только по hostname.


самому то не смешно?
Типа я наступаю на грабли, но я немагу убрать грабли, ведь тогда я перестану наступать на грабли!

1) почему вообще левый хост вдруг лезет в дефолтную секцию? )
2) Почему ВООБЩЕ У ТЕБЯ КАТАЛОГИ ВНУТРИ СЕКЦИЙ ПЕРЕСЕКАЮТСЯ? Отдельный не судьба сделать, тем более что у тебя верхнего уровня каталог идет с правами дени. А мыслю я так - некоторые запросы проскакивают по айпи - без доменного имени. Есно они попадают в дефлотную секцию и есно в дени.

З.Ы. вы батенько перемудили однако )

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Apache + Проблема с виртуальными хостами"  +/
Сообщение от melmaxnvk email(ok) on 14-Окт-08, 15:51 
>самому то не смешно?

Не смешно (а почему должно быть?)

>Типа я наступаю на грабли, но я немагу убрать грабли, ведь тогда
>я перестану наступать на грабли!

Это не грабли, так должно быть. Это нормальная настройка виртульных name-based хостов, почитайте для начала документацию.

>1) почему вообще левый хост вдруг лезет в дефолтную секцию? )

Мне это тоже интересно, почему апач направляет запрос в дефолтную секцию, когда по настройкам должен направлять в правильную..

>2) Почему ВООБЩЕ У ТЕБЯ КАТАЛОГИ ВНУТРИ СЕКЦИЙ ПЕРЕСЕКАЮТСЯ? Отдельный не судьба
>сделать, тем более что у тебя верхнего уровня каталог идет с
>правами дени.  

Что значит каталоги внутри секций?
Есть каталог /usr/local/www/data-dist/
в нем находятся каталоги виртуальных хостов:
/usr/local/www/data-dist/local1
/usr/local/www/data-dist/local2
/usr/local/www/data-dist/local3
/usr/local/www/data-dist/global
Где тут что пересекается? Что здесь неправильного?

>А мыслю я так - некоторые запросы проскакивают по
>айпи - без доменного имени. Есно они попадают в дефлотную секцию
>и есно в дени.

Каким образом если к серверу обращаешься как local1.domain.ru вдруг заменится на <EXT_IP>?
Первый раз с таким сталкиваюсь. Всегда, значит, обращается как local1.domain.ru, а когда звезды не так расположены - как <EXT_IP>?! :)

>З.Ы. вы батенько перемудили однако )

Не исключено, но настройка такого плана именно так описана в документации

P.S. Сейчас с теми же настройками все работает. Пробовал перезапускать апач - работает. Не знаю, надолго ли :(

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Apache + Проблема с виртуальными хостами"  +/
Сообщение от Pahanivo email(??) on 14-Окт-08, 23:27 
Где то у тя лажа - первую секцию - найух.
Если уж очень хочется - проставь туда левый путь, НЕ НАДО ДАЛЕАТЬ каталоги пересекающимися.

>Что значит каталоги внутри секций?
>Есть каталог /usr/local/www/data-dist/
>в нем находятся каталоги виртуальных хостов:
>/usr/local/www/data-dist/local1
>/usr/local/www/data-dist/local2
>/usr/local/www/data-dist/local3
>/usr/local/www/data-dist/global
>Где тут что пересекается? Что здесь неправильного?

ну не надо вообще иметь привычки пихать корневыой каталог в настройки в-хостов
в твоем случае /usr/local/www/data-dist/
каждомы в-хосту свой каталог
апач все права дает по ерархии - права на вложенные каталоги точно такиеже как и у родителя, если для вложженноных конкретных каталогом не прописаны другие.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Apache + Проблема с виртуальными хостами"  +/
Сообщение от BigHo on 15-Окт-08, 20:08 
возможно виной тому не конфигурация, а нагрузка на процессор. В любом случае попробуй версию апача, которая еще тухлятиной не попахивает (2.2.9 доступна на текущий момент).
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

9. "Apache + Проблема с виртуальными хостами"  +/
Сообщение от marakshin email(ok) on 02-Ноя-11, 09:51 
> возможно виной тому не конфигурация, а нагрузка на процессор. В любом случае
> попробуй версию апача, которая еще тухлятиной не попахивает (2.2.9 доступна на
> текущий момент).

Тема бородатая, но все-тки отпишусь.
Не знаю, поможет кому - или нет.
Была необходимость сделать аналогичную конфигурацию - получилось сделать только без дефолтного хоста, т.е. запросы на дефолтный хост заворачиваются на первый виртуальный - тогда все работает нормально - иначе, периодически какой-нибудь из хостов пытается завернуться на локальный. причину так и не выяснил.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру