Маршрутизация запросов приложений: почему некоторые сайты возвращают HTTP 404, а некоторые нет? - PullRequest
0 голосов
/ 01 июня 2018

Я хочу добавить балансировщик нагрузки в существующий проект asp.net, используя Application Request Routing .Поэтому я ознакомился с этими концепциями и создал локальную test-setup :

  • IIS, локально работающую в Windows 10:
    • Маршрутизация запроса установленного приложения 3.0 сУстановщик платформы Windows
    • Создана ферма серверов со следующими серверами:
      1. <test-server-name>.de (сервер Microsoft 2012 R2: содержит проект asp.net)
      2. www.google.com (только дляпосмотрите, работает ли балансировка нагрузки и перезапись URL, потому что у меня нет двух доступных тестовых серверов)

Правило перезаписи URL: url rewrite rule

После многократного ввода localhost в любом браузере, я вижу, что балансировка нагрузки (взвешенный круговой прием) работает нормально.Сайт чередуется между 1. и 2.

Проблема, с которой я сталкиваюсь, это ошибка 404 на обоих сайтах.enter image description here

Я уже попробовал следующее:

  • Установка и включение Неудачный запросПравила трассировки (на локальном IIS): переписывание URL работает правильно, я думаю.
    Журнал неудачных запросов для www.google.com: google drive , разархивируйте и откройте xml, например,IE для лучшего просмотра

  • Создание фермы серверов без автоматического создания правил перезаписи URL enter image description here

    (выбор Нет и создайте собственное правило перезаписи URL)

  • Изменение "Режим управляемого конвейера" -установка пула приложений из Интегрировано до Классический

  • Проверка работоспособности на других веб-сайтах enter image description here Я абсолютно ничего не понимаюпочему он работает на Git-сайтах и ​​почему facebook возвращает код ошибки 400.

  • Включение / отключение прокси (IIS-Manager -> Application Request Routing Cache -> SeНастройки прокси-сервера rver ...)

Я не знаю, что мне делать дальше, поэтому я ценю любую помощь.Спасибо.

1 Ответ

0 голосов
/ 19 июня 2018

Ответ можно найти здесь: https://forums.iis.net/t/1238739.aspx?Why+some+sites+return+HTTP+404+some+don+t+

Некоторые веб-сайты просто не поддерживают localhost в качестве имени хоста, поэтому localhost не может быть найден (ошибка 404), например, на google.com

Подробный ответ, если ссылка выше не будет работать в будущем:

Это не эффективный тест.

То, что вы делаете, это отправка имени хоста вашегозапрос к сторонним серверам.Как Google.

Так что, если ваш запрос скажет http://example.com, вы отправляете это на адрес www.google.com, и серверы Google, скорее всего, отклонят это, как вы можете видеть

Администраторы веб-сервера обычно не позволяют себе получать трафик от домена, который они не размещают.

Если бы вы отправили запрос на мой сервер IP с mysite.com, я бы тоже, вероятно, отклонил его.(Ситуация усложняется, если у вас есть подстановочные сайты, и вы пропускаете весь трафик)

Но если просто показать, что страница 404 из Google означает, что запрос на тур попадет на сервер, то есть ARR работает.

ЕслиВы действительно хотели проверить это таким образом, чтобы локальный хост-файл с www.google.com соответствовал IP-адресу вашего сервера.Создайте сайт с www.google.com в качестве основного заголовка, и тогда вы увидите правильную информацию, попавшую в Google.Но нет никакого учета того, что сторонние администраторы делают на их стороне.

...