После 5 часов попыток решить проблему и прочитать любой учебник, который я нашел, я прошу здесь о помощи.
У меня есть Nginx Reverse Proxy
Сервер, который указывает на мой Apache
Веб-сервер, но на Apache
я получил только IP address
с Nginx reverse proxy
сервера, а не посетителей ip.
Мой nginx файл прокси: /etc/nginx/sites-available/proxy.conf
proxy_pass http://MYIPADDRESS;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
На Apache я добавил в /etc/apache2/apache2.conf
файл:
RemoteIPHeader X-Forwarded-For
и заменил
LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
на
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{X-Forwarded-For}i" combined
a2enmod remoteip
также включен
Также в Nginx /var/log/nginx/access.log
файле, который я получил всегда localhost
IP вроде:
127.0.0.1 - - [27/Jan/2020:23:53:07 +0800] "GET...
Также попытался добавить к /etc/nginx/nginx.conf
:
set_real_ip_from 127.0.0.1;
real_ip_header X-Forwarded-For
Если я сейчас запускаю на своем веб-сервере скрипт PHP в браузере:
<?php
echo 'User IP - '.$_SERVER['REMOTE_ADDR'];
?>
Я только что получил IP-адрес обратных прокси-серверов и тот же для всего сервера.
Обе серверные ОС являются Debian 9, кто-нибудь задумался? Большое спасибо!