Содержание REMOTE_ADDR
Содержание REMOTE_ADDR
Собственно столкнулся с проблемой, что переменная $_SERVER['REMOTE_ADDR'] содержит не адрес клиента, а адрес сервера. Быть так не должно. Как это исправить?
Ubuntu 14.04 vestacp 0.9.8 релиз 17
Ubuntu 14.04 vestacp 0.9.8 релиз 17
-
- Posts: 129
- Joined: Tue Mar 08, 2016 8:03 pm
- Os: CentOS 6x
- Web: nginx + php-fpm
Re: Содержание REMOTE_ADDR
Видимо, на сервере установлена связка apache+nginx?
Re: Содержание REMOTE_ADDR
sudo nano /etc/apache2/mods-enabled/remoteip.conf
ДОБАВИТЬ В СОДЕРЖИМОЕ:
<IfModule remoteip_module>
RemoteIPHeader X-Real-IP
</IfModule>
sudo nano /etc/apache2/mods-enabled/remoteip.load
ДОБАВИТЬ В СОДЕРЖИМОЕ:
LoadModule remoteip_module /usr/lib/apache2/modules/mod_remoteip.so
sudo nano /home/************/conf/web/nginx.conf
***********
***********
location / {
proxy_pass http://***.***.***.***:8080;
proxy_set_header Host $host; #ДОБАВИТЬ СТРОКУ ЕСЛИ НЕТ
proxy_set_header X-Real-IP $remote_addr; #ДОБАВИТЬ СТРОКУ ЕСЛИ НЕТ
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #ДОБАВИТЬ СТРОКУ ЕСЛИ НЕТ
***********
***********
Ну и перезапустить службы apache2 и nginx
ДОБАВИТЬ В СОДЕРЖИМОЕ:
<IfModule remoteip_module>
RemoteIPHeader X-Real-IP
</IfModule>
sudo nano /etc/apache2/mods-enabled/remoteip.load
ДОБАВИТЬ В СОДЕРЖИМОЕ:
LoadModule remoteip_module /usr/lib/apache2/modules/mod_remoteip.so
sudo nano /home/************/conf/web/nginx.conf
***********
***********
location / {
proxy_pass http://***.***.***.***:8080;
proxy_set_header Host $host; #ДОБАВИТЬ СТРОКУ ЕСЛИ НЕТ
proxy_set_header X-Real-IP $remote_addr; #ДОБАВИТЬ СТРОКУ ЕСЛИ НЕТ
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #ДОБАВИТЬ СТРОКУ ЕСЛИ НЕТ
***********
***********
Ну и перезапустить службы apache2 и nginx
Re: Содержание REMOTE_ADDR
спасибо за помощь
оформил баг https://bugs.vestacp.com/issues/488
оформил баг https://bugs.vestacp.com/issues/488
Re: Содержание REMOTE_ADDR
А как Вы определили что отдается адрес сервера а не клиента?
Re: Содержание REMOTE_ADDR
это можно сделать с помощью скрипта:one wrote:А как Вы определили что отдается адрес сервера а не клиента?
remoteip.php
Code: Select all
<?
echo $_SERVER['REMOTE_ADDR'];
?>
Re: Содержание REMOTE_ADDR
Попробовал у себя на двух серверах (v16 и v17) все в порядке, отдается IP клиента.
Re: Содержание REMOTE_ADDR
Вы используете связку apache+nginx?one wrote:Попробовал у себя на двух серверах (v16 и v17) все в порядке, отдается IP клиента.
Re: Содержание REMOTE_ADDR
Да, на обоих серверах.