Я обычно предполагал, что в PHP script я могу протестировать $_SERVER['REMOTE_ADDR']
, чтобы установить IP-адрес, с которого возник запрос. Тем не менее, я начинаю задаваться вопросом, не слишком ли сложнее. Вот сценарий
- Я запустил несколько серверов, назовите их A, B и C - на которых пользователи должны быть "зарегистрированы" li >
- Я запустил отдельный сервер регистрации, назовите его S, где учетные данные пользователей и т.д. сначала проверяются до отправки полного запроса на регистрацию на серверы A, B и C
Запрос отправляется как
file_get_contents('https://url?data=value')
На серверах A, B и C я довольно наивно тестировал $_SERVER['REMOTE_ADDR']
, чтобы установить, что запрос действительно поступал с сервера S. К моему удивлению, результаты оказались неоднородными и переменными
- Значение в
REMOTE_ADDR
было IP-адресом пользователя, взаимодействующего с сервером регистрации, S - Значение в
REMOTE_ADDR
- это IP-адрес сервера регистрации, S - то, что я ожидал увидеть все время - Значение в
REMOTE_ADDR
было другим IP-адресом из пула IP-адресов на виртуальном сервере, на котором я размещаю сервер S
Мне не нужно выполнять этот дополнительный проверочный тест, чтобы полностью отказаться от него. Тем не менее этот результат заставил меня врасплох, поэтому мне интересно узнать, может ли кто-то здесь пролить свет на то, что происходит.
Я должен упомянуть, что я запускаю PHP 5.5 на Lighttpd на серверах A, B и C и PHP 5.3 на Apache 2 на сервере S.