Я устанавливал это раньше, и он работает на других серверах, но я не могу понять, почему он не работает в этом случае, хотя у меня есть возможная теория. Все это есть в 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
В документация для mod_remoteip
списки 172.16/12
как IP-адрес интрасети. Модуль действительно отказывается работать правильно, потому что не обнаруживает блокировку интрасети? Я тоже не смог найти ничего об этом в журнале ошибок.
Кажется глупым, что это могло бы работать таким образом, но это единственная оставшаяся теория, которая имеет смысл.
Также обратите внимание, потому что я знаю, что кто-то спросит: мы настроили VPC после того, как настроили сервер блога, и мы просто не выполнили работу по перезапуску его внутри VPC. Я пытался заставить это работать без него, но если это проблема, мы рассмотрим это.
Спасибо.