Tvboom.kz рекламируем вот этот сайт на других сайтах 468х60
Умный редирект
Имена доменов host_X.ru, virtual_host.ru не имеют ничего общего с реальными доменами, и используются в описании ситуации и тех условии на разработку.
Вводные данные:
В силу нехватки (отсутствия) нескольких реальных(статических) IP адресов для виртуальных хостов базирующих на одном выделенном сервере развернут Apache.
Сервер имеет несколько подключений в интернет с разным «весом» ценой.
Поддержка виртуальных хостов в DNS присутствует(при необходимости можно добавить любые записи) для большинства хостов прописаны записи А и С name для подключений по каналаx с динамическим выделением IP и использующих DynDNS .
Что происходит сейчас:
Для всего этого богатства мы имеем один железно статический IP адрес с развернутым на нем host_X.ru (он же localhost для apache) подключен каналом на ПРОВАЙДЕР1.
Все входящие запросы, вне зависимости от того с какого бы из подключений не пришли согласно записи DNS перенаправляются на host_X.ru через ПРОВАЙДЕР1.
Все входящие запросы, вне зависимости от того с какого бы из подключений не пришли согласно записи DNS перенаправляются на виртуальные хосты также через ПРОВАЙДЕР1.
Все входящие запросы, вне зависимости от того с какого бы из подключений не пришли и адресованные к несуществующим под доменам т.е. например vasy.virtual_host.ru (сам virtual_host.ru развернут на машине и прописан в DNS) или запросы пришедшие через прокси или от старых браузеров не поддерживающих http 1.1. средствами Apache направляются на его localhost, то есть на host_X.ru.
Что хотим получить:
Набор скриптов на PHP с использованием mySQL (или файлов – категорически не отметаются хотя хотелось бы на sql или они могут дублировать sql в случае его падения). Устанавливающиеся в localhost apache и возможно в корень каталогов виртуальных хостов + модификация файлов .htaccess (или дописываются функции в существующие index.php виртуальных хостов) но без внесение ограничений в уже используемые скрипты на виртуальных хостах.
В проекте нужны следующие атрибуты:
Админка – для внесения данных в базу SQL
Странички ошибок (стандартные Apache не подойдут т.к. с его точки зрения ошибки то и нет)
Странички переадресации – с соответствующими информационными блоками (берем из SQL)
Страничка статистики (простенько выборка из базы по нескольким заданным критериям)
- Дизайн не нужен – только движок
Через админку в базу данных заносим все необходимые нам данные, например:
Имеющиеся у нас домены и под домены(и их алиасы) , IP адреса доменов (мало ли что будет в будущем). Наименования провайдеров ip адреса интерфейсов и их имена из dyndns , IP сети соотнося их принадлежность соответствующему провайдеру, атрибуты для описания поведения скрипта в определенных ситуациях.
Выполняя функции «умной переадресации» на следующих условиях:
1. Проверяем тип запроса (может ли клиент вообще работать с виртуальными хостами) если НЕТ выводим страничку с текстом из таблицы _redir_http11_error
2. Смотрим есть ли запрошенный домен(поддомен) – данные берем из SQL- если такового домена нет выводим страничку с текстом из таблицы _redir_domain_error
a. Если нет запрошенного под домена смотрим статус «Оставаться в пределах домена» и если он true переадресуем пользователя на корень домена (т.е. если запрошен vasy.virtual_host.ru то направляем его на virtual_host.ru)
b. Если статус «Оставаться в пределах домена» false и явно задан URL для переадресации отправляем пользователя на данный URL (на пример пользователь ввел virtual_host.ru или www. virtual_host.ru в любом случае перебрасываем его на tr. virtual_host.ru)
c. Если статус «Оставаться в пределах домена» false и URL для переадресации не задан то выводим страничку с текстом из таблицы _redir_domain_error
3. Если для домена установлен атрибут «Использовать настройки провайдера» то проверяем принадлежность ip адреса пользователя с таблицами IP адресов провайдеров (если после сравнения IP мы получим false считаем, что пользователь пришел «снаружи») и переадресуем пользователя на соответствующий поддомен (provider1. virtual_host.ru если он пришел с первого провайдера, provider2. virtual_host.ru если со второго и т.д. соответствующие записи внесены в DNS)
a. Если после сравнения IP клиента с Ip адресами из БД SQL мы получим false и пользователь пришел «снаружи» смотрим статус атрибута «Разрешить внешние подключения» если он true, то смотрим настройку «основной провайдер(URL) для домена» и направляем пользователя на него.
b. Если «основной провайдер» недоступен (например упал канал), то пере направляем на следующего по «весу»(более дешевого провайдера – для этого наверное надо будет сделать соответствующую табличку в SQL)
c. Помимо allow списков IP адресов, было бы замечательно ввести и DENY списки адресов, при входе с которых пользователь бы отправлялся на страницу с текстом из таблицы _IP_access_deny скрипта (или на 403 самого apache если это будет сделано через .htaccess файлы или, что еще лучше, на переназначенную 403-ю для данного домена для каждого домена стоит прописать переадресацию на 403 для использования соответствующего домену дизайна) - надо для обрубания поисковых ботов и злостных «жопашников»
4. 4. Необходимо отражать в БД SQL перенаправления осуществленные скриптом для дальнейшего вывода на страничке статистики
a. Предусмотреть отключение логирования и ограничение размера таблицы логов
Возможна оптимизация процессов
Бюджет 500 р. Возможен аргументированный торг, все виды платежа,
Заявки фрилансеров
Похожие заказы
- Веб-программирование1 исполнительЗавершен15 лет назад
Необходимо доработать (или сделать заново) торгово-информационный портал, очень приблизительный пример такого портала это: www.price.ua, www.tut.com.ua, emarket.ua, uaprom.ua и прочее. Дизайн имеется. Разработана концепция механизма портала, тех задание. Ведущий разработчик должен иметь: ...
Веб-программирование8 заявокЗакрыт15 лет назадНужен скрипт партнерской программы по смс, готовые решения приветствуются ))
Веб-программирование2 заявкиЗакрыт15 лет назадНадо написать парсер и выложить исходную информацию красиво на сайт.
Веб-программирование1 исполнительЗавершен15 лет назадДобрый день! Необходимо доделать сайт на Битриксе и перезалить его на родной хостинг. Доделать нужно отображение товаров (сейчас они отображаются по умолчанию системы Битрикс, а надо как по дизайну – верстка ...
Веб-программирование10 заявокЗакрыт15 лет назад- $20
Есть готовый сайт на Drupal-е. Надо внести изменения, которые касаются только представления некоторых страниц.
Веб-программирование8 заявокЗакрыт15 лет назад - $50
Задача войти и собрать данные. Что бы оценить объём работы: http://www.forexua.com/ru/account.aspx Логин: 362764 и пасс для чтения: ui2slmj Нужны данные по: Trade History Account ...
Веб-программирование1 исполнительЗавершен15 лет назад Доброго. Скрин дизайна прилагается, Краткое ТЗ тоже. ИЗ ТЗ можно понять общий объем работ. ЧПУ - само собой. Обязательно опыт, портфолио. Вы должны уметь работать с модулями в идеале. ...
Веб-программирование5 заявокЗакрыт15 лет назадТребуется установить и настроить движок на сайт. Шаблон сверстан. Сайт разделен на две категории(Два коттеджных поселка) соответственно редактирование всего должно осуществляться в разных разделах админки. На главной страницы должны быть карты страниц каждого поселка. ...
Веб-программирование1 исполнительЗакрыт15 лет назадНужен исключительно специалист в CMS Drupal 6.x + UberCart. Необходимо перенести алгоритм метода оплаты с одно движка на CMS Drupal 6.x + UberCart. Подробности в ПМ. Прошу людей не в ...
Веб-программирование1 заявкаЗакрыт15 лет назад