SmartCJ + Nginx + Cloudflare

wskeal
Posts: 280
Joined: Wed Oct 17, 2012 6:56 pm

SmartCJ + Nginx + Cloudflare

Post by wskeal »

Подскажите плиз что не так делаю.

Смарт пишет, что "Вы behind a proxy"
При этом в cloudflare в мануале написано, что нужно добавить такую штуку в конфиг nginx

set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/12;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 199.27.128.0/21;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2c0f:f248::/32;
set_real_ip_from 2a06:98c0::/29;

# use any of the following two
real_ip_header CF-Connecting-IP;
#real_ip_header X-Forwarded-For;


Добавил, как мы видим, строка X-Forwarded-For закоментирована. Но она всё равно передаётся.
То есть если зайти в /admin/test.php сайта который через cloudflare, то увидим свой айпи в X-Forwarded-For.
А в wiki сказано, что X-Forwarded-For быть не должно вообще.

В итоге, по всей видимости из-за этого, не считаются клики, хотя показы считаются.
Админы говорят "не знаю почему, строка закоментирована". Подскажите куда копать и кто виноват, плиз.
wskeal
Posts: 280
Joined: Wed Oct 17, 2012 6:56 pm

Re: SmartCJ + Nginx + Cloudflare

Post by wskeal »

В мануале сказано, что cloudlare передает forwarded вот так

First, if there is no existing "X-Forwarded-For" header in the request, then the header would have an identical value to the CF-Connecting-IP

то есть если его не существует, то он его копирует из CF-Connecting-IP. А как его выключить не сказано.
darkover
Posts: 1574
Joined: Sat Apr 13, 2013 8:59 pm

Re: SmartCJ + Nginx + Cloudflare

Post by darkover »

модуль стоит ?
http://nginx.org/en/docs/http/ngx_http_ ... odule.html
в логах ngixn ипишники какие идут ? должны быть реальных юзеров

и еще важный момент - ngixn + apache или ngixn + php_fpm
wskeal
Posts: 280
Joined: Wed Oct 17, 2012 6:56 pm

Re: SmartCJ + Nginx + Cloudflare

Post by wskeal »

darkover wrote:модуль стоит ?
http://nginx.org/en/docs/http/ngx_http_ ... odule.html
в логах ngixn ипишники какие идут ? должны быть реальных юзеров

и еще важный момент - ngixn + apache или ngixn + php_fpm
модуль стоит, логи отключены у меня, но на сиджетубе(через cloudflare который добавлен) захожу в /admin/test.php и вижу там свой IP, страну свою. То есть cloudflare правильно перенаправляет мой IP. Но проблема в том, что он помимо CF-Connecting-IP, отправляет еще и X-Forwarded-For, то есть там тоже вижу свой айпи.
А в Wiki написано:
"Другая распространенная ошибка в том, что ИП серфера передается не только в REAL_IP, но еще в и HTTP_FORWARED_FOR.
Определить это так же просто - если открыть /scj/admin/test.php то в поле HTTP_FORWARED_FOR увидите свой ИП.
Смарт определяет прокси в том числе по полю HTTP_FORWARED_FOR и ему начинается казаться что все хиты идут через прокси.
Как пофиксить: отписать админу, что б ИП передавался только в REAL_IP. Проверить, что пофикшено: если открыть /scj/admin/test.php то поля HTTP_FORWARED_FOR быть не должно."

Вот у меня как раз этот случай. Мой айпи(и других клиентов) передаётся еще и в HTTP_FORWARED_FOR. И смарт считает всех нас за прокси, поэтому об этом мне пишет в админке. Ну и прокси клики в ротации не хочет учитывать, по всей видимости.
wskeal
Posts: 280
Joined: Wed Oct 17, 2012 6:56 pm

Re: SmartCJ + Nginx + Cloudflare

Post by wskeal »

Вот я нуб. Оказывается можно поставить чтоб учитывал прокси клики в ротации, поставил. Теперь считает. Ну хотя бы так.

Но было бы полезным вообще forwarded исключить, только не знаю как пока.
darkover
Posts: 1574
Joined: Sat Apr 13, 2013 8:59 pm

Re: SmartCJ + Nginx + Cloudflare

Post by darkover »

Это костыль.
Где-то в настройках есть X-Forwarded-For, из воздуха оно взяться не может.
wskeal
Posts: 280
Joined: Wed Oct 17, 2012 6:56 pm

Re: SmartCJ + Nginx + Cloudflare

Post by wskeal »

Ну в конфиге я эту строку x-forwarded вообще удалил, хоть она и была закоментирована, ну конечно же ничего не изменилось)

Просто из мануала Cloudflare
First, if there is no existing "X-Forwarded-For" header in the request, then the header would have an identical value to the CF-Connecting-IP

Типа если, X-Forwarded-For заголовка нет, то Cloudflare создаёт его сам, путем копирования айпи адреса из CF-Connecting-IP в X-forwarded. При этом нигде в настройках отключения/включения этой фичи не нашел.
darkover
Posts: 1574
Joined: Sat Apr 13, 2013 8:59 pm

Re: SmartCJ + Nginx + Cloudflare

Post by darkover »

Хм, да, есть такое дело.
Методы отсюда viewtopic.php?f=7&t=92267&p=151341&hili ... ED#p151341 не помогают. _SERVER["HTTP_X_FORWARDED_FOR"] присутствует. В самих хедерах, что сервер отдает клиенту его нет. а в пхп инфо ( /scj/admin/test.php ) имеется
admin
Site Admin
Posts: 37993
Joined: Wed Sep 10, 2008 11:43 am

Re: SmartCJ + Nginx + Cloudflare

Post by admin »

думаю таки надо админу отдать эту задачу, тут как видно скрипта оно не касается, у него не будет возможности сказать "ничего не знаю, это скрипт глючит" )
Don't forget to run script update
darkover
Posts: 1574
Joined: Sat Apr 13, 2013 8:59 pm

Re: SmartCJ + Nginx + Cloudflare

Post by darkover »

Дак я тож поставил один домен через CF, и у меня тож самое. И это не наши сервера генерят хидеры, он такой прилетает от CF
Post Reply