Как делает сервер DNS, знают, берут ServerName от httpd.conf, хотя он не настроен в “/etc/hosts”

HAProxy, дизайном, не может передать исходный IP-адрес реальному серверу, в значительной степени как никакой другой прокси.

Одно решение может быть, если Ваша единственная проблема с веб-сервером, для изучения X-forwarded-for HTTP-заголовка, который должен содержать адрес клиента. Теперь, это - в значительной степени конкретное приложение/язык, но смотрите на этот пример в php:

$headers = apache_request_headers();

$real_client_ip = $headers["X-Forwarded-For"];

Если Вы также хотите зарегистрировать исходный адрес, можно изменить LogFormat в httpd.conf, чтобы выглядеть примерно так:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{X-Forwarded-For}i\"" common

1
задан 11 December 2009 в 11:27
2 ответа

Сервер DNS не берет ServerName от httpd.conf

Ваш браузер не направляет запрос, веб-сервер возвращает корректную страницу, базирующуюся частично на HTTP-заголовке Хоста, отправленном браузером.

Когда Вы вводите URL в своем браузере и совершаете нападки, входят, имя разрешено к IP с помощью DNS, и браузер отправляет Запрос HTTP в IP, возвращенный из запроса DNS.

HTTP-заголовки формируют ядро Запроса HTTP. Одним из них является Хост или доменное имя, которое Вы ввели в браузере.

Используя пример Виртуальное определение Хоста.

<VirtualHost *:80>
  ServerName example.com
  DocumentRoot /var/www/example.com
</VirtualHost>

Директива ServerName в рамках Вашей Виртуальной конфигурации Хоста подобрана против HTTP-заголовка Хоста. Таким образом, если Вы вводите

http://example.com

Apache получит запрос и попытку соответствовать заголовку Хоста

Host: example.com

с он - Виртуальные определения Хоста. Если это найдет соответствие, то это будет использование вообще перечисляться в

DocumentRoot 

В примере выше

/var/www/example.com

Это могло быть или индексным файлом, как определено в рамках конфигурации или индексом каталога, если им разрешают.

http://en.wikipedia.org/wiki/Virtual_hosting#Name-based

5
ответ дан 3 December 2019 в 17:27
  • 1
    Спасибо за Ваш ответ...., но мой вопрос перед апачем для получения запроса.... IP-адрес должен получить разрешенное право...., которое сделано путем контакта с сервером DNS или использования "/etc/hosts"...., но в моем случае... У меня есть апачский сервер на моей локальной машине и именованном виртуальном хосте...., когда я ввожу ServerName в своем браузере..., как может это для разрешения.... Я не добавил отображения на "/etc/hosts" файл.... –  user28819 11 December 2009 в 08:56
  • 2
    Как это знает, что вводимый ServerName является моей локальной машиной?? –  user28819 11 December 2009 в 08:57
  • 3
    Что Вы вводите в свой браузер? Какова директива ServerName? –  LukeR 11 December 2009 в 09:13
  • 4
    Я означаю говорить.... Я отправляю " example.com " в веб-браузере.... Мой вопрос просто...." Как делает IP - Доменное имя (example.com) отображение является done" здесь...., хотя я не изменил/etc/hosts –  user28819 11 December 2009 в 10:28
  • 5
    Я понимаю Ваш вопрос, но без специфических особенностей относительно какой you' ввод ре и какова Ваша конфигурация VirtualHosts, я can' t отвечают на это. Я могу гарантировать, вводите ли Вы example.com в браузер с пустым файлом hosts, it' s не показывающий Ваш локальный апачский сервер. –  LukeR 11 December 2009 в 10:40

Я полагаю, что это на самом деле берет его от того, везде, где Ваша ОС хранит имя хоста,/etc/hostname на Ubuntu или/etc/sysconfig/network под дистрибутивами RH-типа

Во время установки я думаю, что она заполняет ServerName путем выполнения hostname команда

0
ответ дан 3 December 2019 в 17:27

Теги

Похожие вопросы