Я пытаюсь запустить Apache за обратным прокси-сервером Nginx. Однако Apache прерывает соединение, если оба X-Forwarded-For
и X-Forwarded-Host
заголовки присутствуют в запросе. Передача только одного из этих заголовков работает нормально. С помощью httpie
:
$ http http://my-host:9000
HTTP/1.1 200 OK
...
$http http://my-host:9000 'X-Forwarded-For:172.16.16.1'
HTTP/1.1 200 OK
...
$ http http://my-host:9000 'X-Forwarded-Host:my-host:443'
HTTP/1.1 200 OK
...
$ http http://my-host:9000 'X-Forwarded-For:172.16.16.1' 'X-Forwarded-Host:my-host:443'
http: error: ConnectionError: ('Connection aborted.', BadStatusLine("''",))
Эти запросы выполняются на том же компьютере, на котором запущен Apache. Выполнение проблемного запроса с отдельной машины работает:
some-other-machine $ http http://my-host:9000 'X-Forwarded-For:172.16.16.1' 'X-Forwarded-Host:my-host:443'
HTTP/1.1 200 OK
Машина с Apache - это виртуальная машина Vagrant с Debian 8.6 и фиксированным IP-адресом в частная сеть. Версия Apache 2.4.10 работает с конфигурацией по умолчанию.
Я попытался отключить как можно больше модулей Apache, вот те, которые все еще включены:
$ apachectl -M
Loaded Modules:
core_module (static)
so_module (static)
watchdog_module (static)
http_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
unixd_module (static)
access_compat_module (shared)
alias_module (shared)
auth_basic_module (shared)
authn_core_module (shared)
authn_file_module (shared)
authz_core_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
filter_module (shared)
mime_module (shared)
mpm_prefork_module (shared)
negotiation_module (shared)
rewrite_module (shared)
rpaf_module (shared)
setenvif_module (shared)