Как можно перенаправить один URL на разные сайты / серверы? (например: https://hkps.pool.sks-keyservers.net/)

1252
KIAaze

Вчера я заметил, что https://hkps.pool.sks-keyservers.net/ показывал на моем ноутбуке другую страницу, чем на настольном компьютере.

Этот URL перенаправляет на один из многочисленных серверов, перечисленных здесь: https://sks-keyservers.net/status/

В отличие от обычного перенаправления URL-адреса, URL-адрес не изменяется, в то время как содержимое страницы изменяется.

Как именно это работает? Как это можно настроить? Имеет ли это какое-либо отношение к круговой системе DNS ?

Также кажется, что он всегда показывает один и тот же «сервер» на данном ПК, если к нему один раз был получен доступ. Как оно это делает?

http://www.pool.ntp.org/en/, похоже, похожая система.

1

3 ответа на вопрос

3
Kristian Fiskerstrand

Yes, all the pools of sks-keyservers.net are set up using a DNS round-robin. In terms of reverse proxies, it require all servers to have one enabled, and if you look at the rprox column at https://sks-keyservers.net/status/ some blue flags are specifying servers with multiple servers in the backend in a clustered setup.

The actual data for the round-robin is based on (i) hourly update run of the full pool (ii) authorative DNS server update the list of DNS records every 15 minutes. For the non-geographical pools a random selection is used in (ii), for the geographical pools (EU, NA, ... ) it is ranked by SRV record based on the description in http://kfwebs.com/sks-keyservers-SRV.pdf

Прямой ответ от админа! Благодарю. :) Почему на серверах должен быть включен прокси? Разве «прокси» не машина, передающая информацию, то есть та, что сначала идет с hkps.pool.sks-keyservers.net? Так ли это, что каждый из реальных серверов также может перенаправить на другую машину пула, если это необходимо? KIAaze 10 лет назад 0
Пул является циклическим перебором DNS, поэтому там не происходит прокси, но трафик направляется непосредственно на один из серверов. Для включения в пул необходимо включить обратный прокси-сервер для отдельных серверов перед экземпляром SKS. Причиной этого является то, что SKS является однопоточным, поэтому медленное прямое подключение клиента может привести к DoS и, как следствие, к тому, что другие попытки подключения к серверу истечут. При наличии обратного прокси-сервера перед SKS выполняет свою работу и передает результат обратно обратному прокси-серверу, который передает его клиенту и переходит к следующему заданию в очереди. Kristian Fiskerstrand 10 лет назад 0
2
Nifle

Есть несколько способов сделать это.
Вот очень поверхностный способ описать это.

Один из распространенных способов заключается в том, чтобы https://hkps.pool.sks-keyservers.net/ указывал на веб-интерфейс с веб-сервером.

Затем внешний интерфейс передает ваш запрос на один из его внутренних серверов. Есть много способов, чтобы сервер переднего round robinплана мог выбрать внутренний сервер - один из них, number of connectionsдругой.

Когда вы возвращаетесь на страницу « https://hkps.pool.sks-keyservers.net/ », веб-интерфейс либо запоминает ваш IP-адрес и отправляет вас в тот же бэкэнд, либо бэкэнд дает вам куки-файл, который читает веб-интерфейс, который сообщает, что вы хотите перейти к определенному бэкэнду.

Значит ли это, что URL-адрес указывает на «обратный прокси»? Мне было бы интересно узнать подробности или ссылки на руководства по настройке такой системы. Несколько записей IP / A записей в записях DNS? Запись виртуального хоста на внутренних серверах, как описано на pool.ntp.org? так далее :) KIAaze 10 лет назад 0
0
milli

This probably has nothing special to do with the DNS part of the connection.

Web servers can key off information your browser sends with it's request headers, e.g., "referer" tags which indicate you clicked on a link on another site to get here, or what's most likely in this case is the User-Agent string sent by your browser. Here's a couple examples of User-Agent strings:

Chrome version 32 running on some 64-bit flavor of Linux:

User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.107 Safari/537.36

or

Safari version 7.0.1 running on OS X 10.9.1:

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.73.11 (KHTML, like Gecko) Version/7.0.1 Safari/537.73.11

This is also how web servers figure out if you are on a mobile device.

Here's Safari version 7.0 running on an iPad running IOS 7.0.4:

User-Agent: Mozilla/5.0 (iPad; CPU OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53

The web server can use this information to display a different page if the designer made a conscious effort to do so. So you can get a different-looking page on Chrome versus Safari, as a simple example. But as you can see from the contents of the User-Agent strings, there's a lot of information there that a web designer can use to customize the resulting page you get back.

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