![WordPress показывает IP-адрес прокси-сервера с помощью mod_remoteip](https://rvso.com/image/658358/WordPress%20%D0%BF%D0%BE%D0%BA%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%20IP-%D0%B0%D0%B4%D1%80%D0%B5%D1%81%20%D0%BF%D1%80%D0%BE%D0%BA%D1%81%D0%B8-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20mod_remoteip.png)
Я уже настраивал это раньше, и это работает на других серверах, но я не могу понять, почему это не работает в этом случае, хотя у меня есть возможная теория. Все это находится в Amazon Web Services.
Итак, в этом случае мы размещаем основной сайт на сервере Windows с использованием IIS 8. Блог находится на другом сервере, работающем под управлением Ubuntu/Apache 2.4.6 для размещения WordPress. Основной сайт находится в VPC для поддержки нескольких IP-адресов. Блог находится за пределами VPC.
Другие настройки (которые работают) используют nginx в качестве обратного прокси-сервера вместо IIS и имеют прокси и сервер в одном и том же VPC. Имеет ли это значение?
Из рабочей конфигурации:
LoadModule remoteip_module /usr/lib/apache2/modules/mod_remoteip.so
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 172.31.x.x/32
Нерабочая конфигурация:
LoadModule remoteip_module /usr/lib/apache2/modules/mod_remoteip.so
RemoteIPHeader X-Forwarded-For
RemoteIPInternalProxy 54.2x.x.x
Я также пробовал разные варианты, такие как:
RemoteIPTrustedProxy 54.2x.x.x # tried /32 and /24
RemoteIPInternalProxy 54.x.x.x/32 # also tried /24
RemoteIPTrustedProxy www...
Используя тестовую страницу PHP, чтобы проверить ее работоспособность, я вижу следующее print_r($_SERVER);
:
[HTTP_X_FORWARDED_BY] => www.....
[HTTP_X_FORWARDED_FOR] => x.x.x.x:x
[SERVER_ADDR] => 10.230.x.x
[SERVER_PORT] => 80
[REMOTE_ADDR] => 54.2x.x.x
И вывод функции PHP getheaders:
[X-Forwarded-By] => www....
[X-Forwarded-For] => x.x.x.x:x
Theдокументациядля mod_remoteip
списков 172.16/12
как IP-адрес интрасети. Действительно ли модуль отказывается работать правильно, потому что не обнаруживает блок интрасети? Я также не смог найти ничего об этом в журнале ошибок.
Кажется глупым, что это может работать таким образом, но это единственная оставшаяся теория, которая имеет смысл.
Также следует отметить, потому что я знаю, что кто-то спросит: мы настроили VPC после того, как настроили сервер блога, и мы просто не провели работу по его перезапуску внутри VPC. Я пытался заставить это работать без него, но если проблема в этом, то мы рассмотрим возможность сделать это.
Спасибо.