Page 1 of 2

Проблема с IP

Posted: Wed Jan 14, 2015 12:29 pm
by bigbik
Перенесли сайт с сервера c ISPmanage на другой сервер с Vesta CP - перестал работать модуль определения города по ip адресу посетителя (определяется только один город). Судя по access.log проблема в том что ip-адрес пользователя подменяется ip-адресом сервера:

Code: Select all

91.239.27.75 - - [14/Jan/2015:15:06:27 +0300] "GET / HTTP/1.0" 200 12443 "-" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.69 Safari/537.36"
91.239.27.75 - - [14/Jan/2015:15:06:27 +0300] "GET /wp-includes/css/dashicons.min.css HTTP/1.1" 200 25271 "http://bigbik.com/" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.69 Safari/537.36"
В панели управления, во вкладке IP указаны 2 ip-адреса:
1)
91.239.27.75
255.255.254.0
eth1
2)
10.7.20.247 → 91.239.27.75
255.248.0.0
eth0

Помогите, пожалуйста, решить проблему.

Re: Проблема с IP

Posted: Wed Jan 14, 2015 1:48 pm
by skurudo
Попробуйте использовать mod_rpaf:
/etc/apache2/mods-available/rpaf.conf

Например вот так:

Code: Select all

<IfModule rpaf_module>
    RPAFenable On

    # When enabled, take the incoming X-Host header and
    # update the virtualhost settings accordingly:
    RPAFsethostname On

    # Define which IP's are your frontend proxies that sends
    # the correct X-Forwarded-For headers:
    RPAFproxy_ips 91.239.27.75 127.0.0.1 ::1

    # Change the header name to parse from the default
    # X-Forwarded-For to something of your choice:
#   RPAFheader X-Real-IP
</IfModule>
** после внесения изменений apache2 нужно рестартануть

Можно подробностей, у вас какой-то хитры nat?
И еще вопрос, в какой конфигурации у вас все работает? (какой темплейт для сайта используется)

Re: Проблема с IP

Posted: Wed Jan 14, 2015 2:20 pm
by bigbik
Не помогло.

Производилась чистая установка панели на виртуальный сервер с ubuntu, файлы конфигурации не трогались.

Шаблон apache: default
Шаблон Nginx: default

от хостера получил такой ответ

Code: Select all

Здравствуйте, у вас некорректно обрабатывается хедер от фронтэнд-сервера, скорее всего вы игнорируете X-Forwarded-For, поэтому в бэкенде адрес клиента заменяется на адрес фронтэнда, который с ним соединяется.

Re: Проблема с IP

Posted: Wed Jan 14, 2015 8:17 pm
by skurudo
Логичный ответ, для этого нам и нужен был mod_rpaf.

Давайте тогда проверим по порядку:
1. ип к которому привязан домен - тот же что и в логах, верно?

2. в настройках nginx - /etc/nginx/nginx.conf

Code: Select all

    
    proxy_redirect      off;
    proxy_set_header    Host            $host;
    proxy_set_header    X-Real-IP       $remote_addr;
    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
3. mod_rpaf

Code: Select all

<IfModule rpaf_module>
    RPAFenable On

    # When enabled, take the incoming X-Host header and
    # update the virtualhost settings accordingly:
    RPAFsethostname On

    # Define which IP's are your frontend proxies that sends
    # the correct X-Forwarded-For headers:
    RPAFproxy_ips 127.0.0.1 ::1

    # Change the header name to parse from the default
    # X-Forwarded-For to something of your choice:
#   RPAFheader X-Real-IP
</IfModule>
Проверил у себя на боевом сервере с дебианом - в логах правильные адреса.
Так что давайте попробуем понять, в чем дело.

Re: Проблема с IP

Posted: Thu Jan 15, 2015 7:41 am
by bigbik
1. Верно
2. Так и прописано
3. Так и прописано

Re: Проблема с IP

Posted: Thu Jan 15, 2015 7:44 am
by bigbik
Проблема решена.
Переустановил все на Ubuntu 12.04.5 x64 - заработало все с пол пинка.
На системе Ubuntu 14.04.1 x64 ошибка повторяется.

Re: Проблема с IP

Posted: Thu Jan 15, 2015 8:30 am
by skurudo
bigbik wrote:Проблема решена.
Переустановил все на Ubuntu 12.04.5 x64 - заработало все с пол пинка.
На системе Ubuntu 14.04.1 x64 ошибка повторяется.
Если будет не сильно лениво, добавьте баг: https://bugs.vestacp.com/

Re: Проблема с IP

Posted: Thu Jan 15, 2015 2:30 pm
by imperio
Нужно проверить на тест машине с ubuntu 14

Re: Проблема с IP

Posted: Thu Jan 15, 2015 4:35 pm
by skurudo
imperio wrote:Нужно проверить на тест машине с ubuntu 14
Попробовал на DigitalOcean, там темплейт новее стоит - Ubutu 14.10
Так что нужно искать именно 14.05 или 14

Code: Select all

# bash vst-install-ubuntu.sh --force
Error: Ubuntu 14.10 is not supported

Re: Проблема с IP

Posted: Thu Jan 15, 2015 4:48 pm
by skurudo
imperio wrote:Нужно проверить на тест машине с ubuntu 14
DigitalOcean - Ubuntu 14.04 x32
баг не повторяется, в логах апача правильный адрес