Реальный ип-адрес из NginxProxyManager в Apache 2
Программное обеспечение
Настройка Apache2
Для того, чтобы Apache начал правильно воспринимать и главное, правильно обрабатывать реальный IP пользователя, пробрасываемый NGiNX, воспользуемся идущим в стандартном пакете Apache модулем
remoteip.
! Важный момент если Nginx Proxy Manager будет находится на том же хосте что и Apache - незабываем изменить работу Apache на любой другой свободный порт кроме 80.Проверяем конфиг файл, если его нет создаем:/etc/apache2/conf-available/remoteip.conf
<IfModule mod_remoteip.c>
RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 172.18.0.2
</IfModule>
* 172.18.0.2 - ип адрес NginxProxyManager (в нашем случае адрес такой - потому что докер контейнер на том же хосте, если у вас NPM на отдельном хосте то указывайте его адрес)
Запускаем remoteip:a2enmod remoteip
a2enconf remoteip
systemctl restart apache2
Настройка NginxProxyManager
Установка полностью штатная через docker
Ниже самая простая конфигурация:
version: '3.8'
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# These ports are in format <host-port>:<container-port>
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
- '81:81' # Admin Web Port
# Add any other Stream port you want to expose
# - '21:21' # FTP
# Uncomment the next line if you uncomment anything in the section
# environment:
# Uncomment this if you want to change the location of
# the SQLite DB file within the container
# DB_SQLITE_FILE: "/data/database.sqlite"
# Uncomment this if IPv6 is not enabled on your host
#DISABLE_IPV6: 'true'
volumes:
- ./dаta:/data
- ./letsencrypt:/etc/letsencrypt
Default Administrator UserEmail: admin@example.com
Password: changeme
После этого в Advanced - нужного домена добавляем
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
Ну и смотрим лог:root@host:~# tail -n 3/var/log/apache2/access.log
77.15.96.198 - - [04/Sep/2024:07:32:06 +0200] "GET /rating.php?object_id=123&sr=GBpXEjzPqf HTTP/1.1" 200 9460 "-" "Mozilla/5.0 "
78.208.96.212 - - [04/Sep/2024:07:32:11 +0200] "GET /ru/rating.php?object_id=789&sr=QvFW2OGWva HTTP/1.1" 301 630 "-" "Mozilla/5.0 "
185.35.171.5 - - [04/Sep/2024:07:32:11 +0200] "GET /ru/rating.php?object_id=3215&sr=QvFW78GWva HTTP/1.1" 200 10395 "-" "Mozilla/5.0 "