реальный IP для Apache, работающем за прокси NGiNX
Конфиг NGiNX (nginx.conf)
Посмотрим в конец файла нашего web-сервера NGiNX (файл /etc/nginx/nginx.conf) и обратим внимание на строчку
include /etc/nginx/conf.d/*.conf;
Именно в ней подключаются дополнительные файлы конфигурации.
Файл дополнительной конфигурации NGiNX (default.conf)
Теперь откроем файл с дополнительными настройками NGiNX, который находится в папке conf.d:
location / {
proxy_pass http://10.10.0.??;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
port_in_redirect off;
proxy_connect_timeout 300;
proxy_buffers 4 256k;
proxy_buffer_size 128k;
proxy_busy_buffers_size 256k;
proxy_read_timeout 180s;
proxy_send_timeout 180s;
}
Модуль remoteip для Apache 2
Для того, чтобы Apache начал правильно воспринимать и главное, правильно обрабатывать реальный IP пользователя, пробрасываемый NGiNX, воспользуемся идущим в стандартном пакете Apache модулем remoteip.
Предварительная настройка модуля remoteip для Apache 2
Вначале настроим работу модуля remoteip. Для этого в папке conf-available создадим файл remoteip.conf. Полный путь до этого файла:
/etc/apache2/conf-available/remoteip.conf
В этот файл запишем пару строчек:
RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 10.10.0.80
Теперь всё это нужно подключить к Apache.
Запуск Apache с модулем remoteip и его дополнительными настройками.
Командой
# a2enmod remoteip
Подключим модуль remoteip к Apache. Но того мало, требуется применить настройки этого модуля. Для этого нужно выполнить команду:
# a2enconf remoteip
Теперь модуль remoteip сконфигурирован и готов к работе. Осталось перезапустить Apache, что и делаем командой:
# systemctl restart apache2