- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева

Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем привет!
Вот какой вопрос меня тревожит уже очень много лет (и в последнее время прямо спать спокойно не могу).
Если мы делаем name-based виртуальный хостинг, то при запросе несуществующего виртуального хоста веб-сервер отдаёт первый виртуальный хост на том IP, на который произошло подключение.
Собственно, вопрос, зачем он это делает? :)
Ведь у нас name-based хостинг и серверу известно, сущетвует ли хост с таким именем или нет. Почему бы просто не отдать 404?
Это можно сказать и про апач и про nginx.
И за примерами далеко ходить не нужно:
Trying 93.158.134.3...
Connected to ya.ru.
Escape character is '^]'.
GET / HTTP/1.1
Host: google.com
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 14 Mar 2011 01:18:04 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
Cache-Control: no-cache,no-store,max-age=0,must-revalidate
Content-Length: 96723
Expires: Mon Mar 14 01:18:04 2011 GMT
Last-Modified: Mon Mar 14 01:18:04 2011 GMT
P3P: policyref="/w3c/p3p.xml", CP="NON DSP ADM DEV PSD IVDo OUR IND STP PHY PRE NAV UNI"
Set-Cookie: S=; path=/; expires=Fri, 16-Mar-2001 01:18:04 GMT
Set-Cookie: S=; domain=.yandex.ru; path=/; expires=Fri, 16-Mar-2001 01:18:04 GMT
Set-Cookie: yandexuid=437472991300065484; domain=.yandex.ru; path=/; expires=Thu, 11-Mar-2021 01:18:04 GMT
X-XRDS-Location: http://openid.yandex.ru/server_xrds/
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><meta http-equiv="X-UA-Compatible"content="IE=EmulateIE7"><meta http-equiv=Content-Type content="text/html;charset=UTF-8"><title>Яндекс</title><link rel="shortcut
Это он нам отдал контент от yandex.ru :)
решение проблемы при запросе несуществующего виртуального хоста веб-сервер отдаёт первый виртуальный хост на этом ip -нужно создать любой домен (например my.ru в ispmanager(у меня он)) и повесить его первым на ip и на нем сделать html старничку с ошибкой или редирект куда надо.
Logger, Вы вопроса не поняли. Речь вовсе не о том, как "отдать 404" что кажется логичным ТС. Вопрос о том, почему оно не делает "зашибись" в понимании [umka]. Почему разработчики веб-серверов обрабатывают описанную ситуацию именно так.
Ответ очень простой. Это логично и правильно с точки зрения разработчика веб-сервера. Не нужно думать о создании каких-то специальных директив по поводу "странички 404 для виртуального хоста, которого нет" (вы же ее кастомизировать захотите, правда?).
Пользователь сам, при желании, подобное организует (пример привел Logger). Элементарная логика и здравый смысл.
Logger, Вы вопроса не поняли. Речь вовсе не о том, как "отдать 404" что кажется логичным ТС. Вопрос о том, почему оно не делает "зашибись" в понимании [umka]. Почему разработчики веб-серверов обрабатывают описанную ситуацию именно так.
Всё верно :) Чисто академический интерес. А как с этим бороться — известно.
Ответ очень простой. Это логично и правильно с точки зрения разработчика веб-сервера. Не нужно думать о создании каких-то специальных директив по поводу "странички 404 для виртуального хоста, которого нет" (вы же ее кастомизировать захотите, правда?).
Просто мне это наоборот кажется нелогичным, когда сервер отдаёт то, чего у него как-бы и нет :)
Почему сервер Яндекса мне отдаёт "HTTP/1.1 200 OK", если я спрашиваю у него хост "google.com", которого у него на самом деле нет?
Ведь теоретически, если кто-то возьмёт пачку доменов, и нацелит их A-записи на ip-адрес какого-либо сайта, на котором обсуждаемая ситуация не обрабатывается, то появится куча дубликатов.
;8661232']Просто мне это наоборот кажется нелогичным, когда сервер отдаёт то, чего у него как-бы и нет :)
Почему сервер Яндекса мне отдаёт "HTTP/1.1 200 OK", если я спрашиваю у него хост "google.com", которого у него на самом деле нет?
А как веб-сервер узнает, что его "там нет". Телепатически что-ли? Самая обычная практика - если новая доменная запись должна указывать на домен по-умолчанию, то нам не нужно даже заводить там отдельный ServerAlias. Просто тупо направьте IN A запись на Ваш сервер - и все заработает.
К счастью, разработчики веб-серверов не решают данную ситуацию "правильно" - а дают ее решение в руки администратора.
;8661232']Ведь теоретически, если кто-то возьмёт пачку доменов, и нацелит их A-записи на ip-адрес какого-либо сайта, на котором обсуждаемая ситуация не обрабатывается, то появится куча дубликатов.
Дубликатов чего и зачем кому-то подобное нужно?
А как веб-сервер узнает, что его "там нет". Телепатически что-ли?
Они у него все в хеше. У апача, во всяком случае.
Апач же при чтении конфигурации берёт все айпишники, которые числятся как NameVirtualHost, и пихает их в хеш вида
{айпишник}=>[список структур virtualhost-ов, которые на нём висят]
И при получении запроса на какой-то айпишник (с указанным заголовком Host), прочёсывает этот список в поисках виртуального хоста с подходящим именем. Если не находит, то использует первый.
Так что он это отлично знает.
Самая обычная практика - если новая доменная запись должна указывать на домен по-умолчанию, то нам не нужно даже заводить там отдельный ServerAlias. Просто тупо направьте IN A запись на Ваш сервер - и все заработает.
К счастью, разработчики веб-серверов не решают данную ситуацию "правильно" - а дают ее решение в руки администратора.
Дубликатов чего и зачем кому-то подобное нужно?
Дубликатов сайта с этого айпишника :)
Теоретически, можно, не утруждая себя работой, вот таким макаром сделать дубликаты разных сайтов на своих доменах, и если через какое-то время они обрастут ссылочной массой и тицами, можно уже сграбить и торговать ссылками )
Ну это как вариант.
Вот ещё вариант вредительства.
Можно сделать какое-то количество таких дубликатов и скормить их поисковым системам, и роботы будут создавать паразитную нагрузку. Т.к. фактически сайт один, а для роботов это разные сайты, которые непременно нужно проиндексировать :)
И такой ещё хак.
Если клиенту на виртуалке выдаётся выделенный ip, но ограниченное количество виртуальных хостов, то он может создать один виртуалхост, нацелить на этот ip ещё сотню доменов и развести их по разным директориям с помощью .htaccess :)
Тогда бы приходилось придумывать специальный способ указания дефолтного виртхоста, а это - больше документации, конфигурации и багов.
;8661945']Они у него все в хеше. У апача, во всяком случае.
В каком еще кеше? IN A запись для доменного имени показывает на IP сервера. Апач может про "сайт" при этом вообще ничего не знать. Нету у него такого сайта ни в конфигах, ни, тем более - "в кеше". То, что Вы интерпретируете как ненормальную ситуацию - вполне штатный режим работы для некоторых.
;8661945']Теоретически, можно, не утруждая себя работой, вот таким макаром сделать дубликаты разных сайтов на своих доменах, и если через какое-то время они обрастут ссылочной массой и тицами
А еще через некоторое время - вылетят из индекса. Если вобще туда попадут, учитывая неуникальность контента.
;8661945']Можно сделать какое-то количество таких дубликатов и скормить их поисковым системам, и роботы будут создавать паразитную нагрузку. Т.к. фактически сайт один, а для роботов это разные сайты, которые непременно нужно проиндексировать :)
Да без проблем. Заплатите несколько сотен доменов у регистратора - и вперед.
;8661945']И такой ещё хак.
Если клиенту на виртуалке выдаётся выделенный ip, но ограниченное количество виртуальных хостов, то он может создать один виртуалхост, нацелить на этот ip ещё сотню доменов и развести их по разным директориям с помощью .htaccess :)
Вы не пугайте своими "хаками" добрых людей на ночь. А лучше почитайте мануал апача и поймите, что ничего работать в таком случае не будет, покуда хостер этого сам не захочет (ну или если он придурок, не читающий документацию).
В каком еще кеше? IN A запись для доменного имени показывает на IP сервера. Апач может про "сайт" при этом вообще ничего не знать. Нету у него такого сайта ни в конфигах, ни, тем более - "в кеше". То, что Вы интерпретируете как ненормальную ситуацию - вполне штатный режим работы для некоторых.
Да не в кеше, а в хеше, который формируется при чтении конфига.
Вот тут написано, как он его формирует, и как он по нему шарит, при получении http-запроса:
http://httpd.apache.org/docs/2.2/vhosts/details.html
И к тому моменту, когда сервак получил http-запрос и прочесал весь этот хеш, он, разумеется, знает, есть ли в конфигурации тот хост, который запрошен в заголовке "Host:"
Странно, что нельзя какой-нибудь одной директивой взять и попросить его посылать нафиг все хосты, которые он не знает.
А лучше почитайте мануал апача и поймите, что ничего работать в таком случае не будет, покуда хостер этого сам не захочет (ну или если он придурок, не читающий документацию).
Дык в том и беда, что если дополнительных усилий не приложить и не создать дефолтные хосты для всех айпишников, то описанная мной схема будет работать :)
(при условии, что у каждого юзера свой ip)
;8665223']Да не в кеше, а в хеше, который формируется при чтении конфига.
Ну замените оговорку хеш->кеш выше. Это что-то изменит?
;8665223']Странно, что нельзя какой-нибудь одной директивой взять и попросить его посылать нафиг все хосты, которые он не знает.
Ну так он "пошлет" также и вполне нормальную конфигурацию, которую я описал выше. Еще раз: то, что вы расцениваете как "неправильно" - некоторые люди просто используют. У них в конфиге апача/nginx нет в принципе некоторых доменов (как виртуальных хостов или алиасов), которые показывают на сервер.
;8665223']Дык в том и беда, что если дополнительных усилий не приложить и не создать дефолтные хосты для всех айпишников, то описанная мной схема будет работать :)
Если головой не думать - еще и не такое может работать. Апач виноват?