Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Сетевые технологии > Пропадает доступ к виртуальным хостам


Автор: mecong 16.9.2010, 09:38
Наша организация пишет сайты. Для внутренних нужд недавно поставили сервер (Suse 11.3) на котором крутятся апач, и мускул. Под сайты делаются виртуальные хосты с доступом по именам (NameBased), чтобы все работало, там же поднят DNS сервер, который должен напрявлять запросы на сервер, при обращении к виртуальным сайтам внутри локалки. 
На локальных компах прописано два DNS сервера -- первый сам сервер, второй шлюз с доступом в интернет (обычный ADSL модем). То есть не зависимо от того включен сервер или нет, все компы прозрачно выходят в глобальную сеть. 
Все это нормально работает, но есть проблема, иногда проподает доступ к тем самым виртуальным серверам. 
Однако, все восстанавливается если на локальном компе перезапустить сетевой интерфейс (можно банально вытащить/вставить шнурок). 
Подскажите как с этим бороться, даже не знаю куда смотреть?

Автор: Secandr 16.9.2010, 12:46
Отказаться от кривой схемы.
Если ваш сервер выключен или не ответил на запрос от ПК, до ПК шлёт запрос на второй сервер, т.е. адсл-модем, который про ваши страшные извращения не знает. Затем ПК кеширует ответ и больше не спрашивает этот хостнейм.

Вариант простой: делать вот так вот
Код

 ipconfig /flushdns

если не работает виртуальный хост

Вариант два: поднять нормальный днс сервер в локалке и не прописывать на ПК других днс.

Вариант три: у вас 100% есть свой домен, в котором живёт ваш сайт. Используйте его. Пропишите в днс своей зоны test.yourdomen.ru на 192.169.1.2 (ip вашего сервера) и *.test.yourdomen.ru на 192.169.1.2. В качестве виртуальных хостов используйте virtual1.test.yourdomen.ru,virtual2.test.yourdomen.ru,virtual3.test.yourdomen.ru,virtual4.test.yourdomen.ru,virtual5.test.yourdomen.ru

Вариант четыре: на всех ПК пропишите жёстко в файле /window/system32/hosts тоже что с вариантом 3.

Автор: mecong 16.9.2010, 14:59
Secandr, спасибо за подробный ответ!
Такая кривая схема возникла из-за того, что этот "сервер" (256 рамы и герцовый проц) может быть не всегда включен. Несомненно в противном случае можно было бы использовать его как примари DNS (там все настроено для этого).
За вариант 1 безусловно спасибо, хотя помниться я это пробовал и тогда решил что не помогает, а терь вижу что работает.  
3, и 4 вариант тоже не подходят. Дело в том что начиналось все с внедрения коммандной разработки (выбрали меркуриал) и основная задача сервера быть сервером репозиториев, а поскольку там все равно хранятся работающие версии сайтов почему бы ему их и не показывать как обычному серваку. Для управления виртуальными хостами написан веб интерфейс, который позволяет каждому разработчику создавать и удалять хосты, что требует изменений файла конфигурации виртуальных хостов апача и соответственно DNS имен. Разработчик может зайти на специальный сайт на сервере и создать новый проект, где будут автоматически созданы файлы и папки фреймворка, а так же репозиторий меркуриал. Используя вариант три придется создавать все вручную, что не удобно.

Теперь интересен корень проблемы, выходит все дело в том что DNS служба сервера иногда не возвращает ответ, что заставляет локальный комп обращаться к следующему DNS и счетать первый не работающим. Это нормальное явление? или можно что-то исправить? 

Автор: Secandr 17.9.2010, 08:41
Как работает служба DNS в Windows я не знаю, знаю только, что из-за неё часто возникают разные забавные проблемы.

Ещё раз поясню вариант с доменами красивый. Вы выделяете домен третьего уровня для разработчиков: test.yourdomen.ru. Все домены четвёртого уровня вы прописываете в глобальном днс на свой локальный серый сервер 192.168.0.2 к примеру.

Зайдя на веб.интерфейс этого сервера разработчик может завести себе домен четвёртого уровня любой, для этого достаточно создать виртуальный хост в апаче не трогая днс.

Всё работает, все довольны.

Автор: mecong 17.9.2010, 09:19
Спасибо,  пока сделал батник с очисткой dns кеша и раздал своим. Вариант 3 тоже интересен, возможно попробую. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)