radrigo 180 Опубликовано: 19 февраля 2016 Рассказать Опубликовано: 19 февраля 2016 Всем привет. Решил попробовать воспользоваться сервисом cloudflare.com. Домен у меня зарегистрирован в http://nic.ru/ а сайт в https://www.reg.ru Подскажите, где правильнее будет сменить ns записи? Сменил в рег ру через isp manager, так сайт сразу перестал работать сайт. Если сменю в ниц.ру, будет ли работать то чтоне отмечено оранжевым облачком в cloudflare? Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 082 Опубликовано: 20 февраля 2016 Рассказать Опубликовано: 20 февраля 2016 10 час назад, radrigo сказал: Подскажите, где правильнее будет сменить ns записи? Менять нужно там где зарегистрирован домен nic.ru. Меняете их на те что вам предоставил cloudlare. 10 час назад, radrigo сказал: Сменил в рег ру через isp manager, так сайт сразу перестал работать сайт. В ISP ничего трогать не нужно. Из ISP переписываете настройки доменов и поддоменов в cloudflare. 2 Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 180 Опубликовано: 20 февраля 2016 Рассказать Опубликовано: 20 февраля 2016 Автор 6 часов назад, celsoft сказал: Менять нужно там где зарегистрирован домен nic.ru. Меняете их на те что вам предоставил cloudlare. В ISP ничего трогать не нужно. Из ISP переписываете настройки доменов и поддоменов в cloudflare. Раз вы используете эту систему на сайте dle-news.ru, то наверняка знаете все нюансы, подскажите какие предпочтительнее выбрать настройки в разделе "Caching" для сайта на DLE. Caching Level - что здесь будет предпочтительнее из 3-х предложенных вариантов? Browser Cache Expiration - какое оптимальное будет время? Development Mode - будут ли пользователи видеть свежедобавленные новости и комментарии когда стоит off? Может ещё посоветуете какие нибудь настройки? Заранее признателен за подсказку. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 082 Опубликовано: 20 февраля 2016 Рассказать Опубликовано: 20 февраля 2016 38 минуты назад, radrigo сказал: какие предпочтительнее выбрать настройки в разделе "Caching" для сайта на DLE. Для DLE без разницы. Вам решать. В этих пунктах вы настраиваете кеширование статики: картинок, стилей CSS, JS и т.д, а не новостей. Ваши новости будут видны сразу независимо от этих настроек. Выключите "Always Online", т.к. у вас сайт динамический, а не просто статика. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 180 Опубликовано: 20 февраля 2016 Рассказать Опубликовано: 20 февраля 2016 Автор Прописал dns сегодня в часов 5 по москве, уже пишет что сайт подключен Status: Active This website is active on CloudFlare. Понимаю что ещё зависит и от провайдера, они кэшируют dns. Могу ли я как-то проверить, у меня уже через их сервера трафик идёт? Визуально я ничего не заметил Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 180 Опубликовано: 21 февраля 2016 Рассказать Опубликовано: 21 февраля 2016 Автор При пользовании данной услугой, у всех пользователей один айпи. При замене кода $_SERVER['REMOTE_ADDR'] в в файлах engine\modules\functions.php engine\inc\include\functions.inc.php Вместо ip пишет localhost Цитата Ссылка на сообщение Поделиться на других сайтах
webair 178 Опубликовано: 21 февраля 2016 Рассказать Опубликовано: 21 февраля 2016 (изменено) <?php echo $_SERVER['HTTP_X_REAL_IP'] . " - HTTP_X_REAL_IP<br>"; echo $_SERVER['HTTP_CLIENT_IP'] . " - HTTP_CLIENT_IP<br>"; echo $_SERVER['HTTP_X_FORWARDED_FOR'] . " - HTTP_X_FORWARDED_FOR<br>"; echo $_SERVER['REMOTE_ADDR'] . " - REMOTE_ADDR" ?> Создайте файл ip.php в корневой директории и поместите туда вышеприведенный код. Запустите скрипт site.ru/ip.php и смотрите где высветится ваш реальный IP. (Сначала узнайте какой у вас IP тут https://2ip.ru/) Изменено 21 февраля 2016 пользователем webair 1 Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 180 Опубликовано: 21 февраля 2016 Рассказать Опубликовано: 21 февраля 2016 Автор 27 минуты назад, webair сказал: <?php echo $_SERVER['HTTP_X_REAL_IP'] . " - HTTP_X_REAL_IP<br>"; echo $_SERVER['HTTP_CLIENT_IP'] . " - HTTP_CLIENT_IP<br>"; echo $_SERVER['HTTP_X_FORWARDED_FOR'] . " - HTTP_X_FORWARDED_FOR<br>"; echo $_SERVER['REMOTE_ADDR'] . " - REMOTE_ADDR" ?> Создайте файл ip.php в корневой директории и поместите туда вышеприведенный код. Запустите скрипт site.ru/ip.php и смотрите где высветится ваш реальный IP. (Сначала узнайте какой у вас IP тут https://2ip.ru/) Через cloudlare немогу, с утра изменил dns Однако аналогичная ситуация если пускаю трафик до сайта через защищенный канал ddos-guard Вот результат, мой айпи 213.149.xx.xxx 186.2.160.89 - HTTP_X_REAL_IP - HTTP_CLIENT_IP 213.149.xx.xxx, 186.2.160.89 - HTTP_X_FORWARDED_FOR 186.2.160.89 - REMOTE_ADDR dns не вступили в силу вот результат с cloudlare 141.101.80.94 - HTTP_X_REAL_IP - HTTP_CLIENT_IP 213.149.xx.xxx, 141.101.80.94 - HTTP_X_FORWARDED_FOR 141.101.80.94 - REMOTE_ADDR Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 082 Опубликовано: 21 февраля 2016 Рассказать Опубликовано: 21 февраля 2016 Для cloudflare если стоит nginx на сервере нужно произвести настройки https://support.cloudflare.com/hc/en-us/articles/200170706-How-do-I-restore-original-visitor-IP-with-Nginx- а для апача https://support.cloudflare.com/hc/en-us/articles/203656534-How-do-I-restore-original-visitor-IP-with-Apache-2-4- если править файлы скрипта DLE то cloudflare передает заголовки в HTTP_CF_CONNECTING_IP 1 Цитата Ссылка на сообщение Поделиться на других сайтах
webair 178 Опубликовано: 21 февраля 2016 Рассказать Опубликовано: 21 февраля 2016 Ваш реальный IP определяется только с помощью HTTP_X_FORWARDED_FOR, поэтому используйте его. Но он возвращает у вас 2 ip адреса, поэтому берем только первый, который является реальным. <?php $ip_array = explode(",", $_SERVER['HTTP_X_FORWARDED_FOR']); echo $ip_array['0']; ?> Попробуйте выполнить этот скрипт. Если все хорошо, то следуйте дальнейшим инструкциям: engine\modules\functions.php найти function get_ip() { if ( filter_var( $_SERVER['REMOTE_ADDR'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ) { return filter_var( $_SERVER['REMOTE_ADDR'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4); } if ( filter_var( $_SERVER['REMOTE_ADDR'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ) { return filter_var( $_SERVER['REMOTE_ADDR'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV6); } return 'localhost'; } заменить на function get_ip() { $ip_array = explode(",", $_SERVER['HTTP_X_FORWARDED_FOR']); if ( filter_var( $ip_array['0'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ) { return filter_var( $ip_array['0'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4); } if ( filter_var( $ip_array['0'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ) { return filter_var( $ip_array['0'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV6); } return 'localhost'; } engine\inc\include\functions.inc.php найти function get_ip() { if ( filter_var( $_SERVER['REMOTE_ADDR'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ) { return filter_var( $_SERVER['REMOTE_ADDR'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4); } if ( filter_var( $_SERVER['REMOTE_ADDR'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ) { return filter_var( $_SERVER['REMOTE_ADDR'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV6); } return 'localhost'; } заменить на function get_ip() { $ip_array = explode(",", $_SERVER['HTTP_X_FORWARDED_FOR']); if ( filter_var( $ip_array['0'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ) { return filter_var( $ip_array['0'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4); } if ( filter_var( $ip_array['0'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ) { return filter_var( $ip_array['0'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV6); } return 'localhost'; } 2 Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 180 Опубликовано: 21 февраля 2016 Рассказать Опубликовано: 21 февраля 2016 (изменено) Автор 48 минуты назад, webair сказал: Ваш реальный IP определяется только с помощью HTTP_X_FORWARDED_FOR, поэтому используйте его. Но он возвращает у вас 2 ip адреса, поэтому берем только первый, который является реальным. <?php $ip_array = explode(",", $_SERVER['HTTP_X_FORWARDED_FOR']); echo $ip_array['0']; ?> Попробуйте выполнить этот скрипт. Если все хорошо, то следуйте дальнейшим инструкциям: engine\modules\functions.php найти function get_ip() { if ( filter_var( $_SERVER['REMOTE_ADDR'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ) { return filter_var( $_SERVER['REMOTE_ADDR'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4); } if ( filter_var( $_SERVER['REMOTE_ADDR'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ) { return filter_var( $_SERVER['REMOTE_ADDR'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV6); } return 'localhost'; } заменить на function get_ip() { $ip_array = explode(",", $_SERVER['HTTP_X_FORWARDED_FOR']); if ( filter_var( $ip_array['0'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ) { return filter_var( $ip_array['0'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4); } if ( filter_var( $ip_array['0'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ) { return filter_var( $ip_array['0'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV6); } return 'localhost'; } engine\inc\include\functions.inc.php найти function get_ip() { if ( filter_var( $_SERVER['REMOTE_ADDR'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ) { return filter_var( $_SERVER['REMOTE_ADDR'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4); } if ( filter_var( $_SERVER['REMOTE_ADDR'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ) { return filter_var( $_SERVER['REMOTE_ADDR'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV6); } return 'localhost'; } заменить на function get_ip() { $ip_array = explode(",", $_SERVER['HTTP_X_FORWARDED_FOR']); if ( filter_var( $ip_array['0'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ) { return filter_var( $ip_array['0'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4); } if ( filter_var( $ip_array['0'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ) { return filter_var( $ip_array['0'] , FILTER_VALIDATE_IP, FILTER_FLAG_IPV6); } return 'localhost'; } Спасибо добрый человек=) Вечером отпишусь о результате, как полностью припаркуется домен. с cloudlare помогло, значит и с ddos-guard будет работать=) Изменено 21 февраля 2016 пользователем radrigo Цитата Ссылка на сообщение Поделиться на других сайтах
radrigo 180 Опубликовано: 21 февраля 2016 Рассказать Опубликовано: 21 февраля 2016 Автор А вообще чтоб нормально работало без изменения в скрипты движка, надо чтоб HTTP_X_FORWARDED_FOR выводил один ip адрес? Что написать в поддержку хостинга? Цитата Ссылка на сообщение Поделиться на других сайтах
webair 178 Опубликовано: 21 февраля 2016 Рассказать Опубликовано: 21 февраля 2016 55 минут назад, radrigo сказал: А вообще чтоб нормально работало без изменения в скрипты движка, надо чтоб HTTP_X_FORWARDED_FOR выводил один ip адрес? Что написать в поддержку хостинга? Ничего не надо писать, это нормально. У вас же через прокси получается сайт работает. То что я прислал должно помочь. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
Captain 624 Опубликовано: 21 февраля 2016 Рассказать Опубликовано: 21 февраля 2016 http://forum.dle-news.ru/topic/69510-кто-нибудь-реализовывал-подобное/#comment-346518 Цитата Ссылка на сообщение Поделиться на других сайтах
killserver 2 Опубликовано: 10 марта 2017 Рассказать Опубликовано: 10 марта 2017 немного подниму тему в силу того, что может кому-то да пригодится: function getip() { if(isset($_SERVER)) { if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } elseif(isset($_SERVER['HTTP_CLIENT_IP']) && !empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif(isset($_SERVER['REMOTE_ADDR']) && !empty($_SERVER['REMOTE_ADDR'])) { $ip = $_SERVER['REMOTE_ADDR']; } else { $ip = false; } } else { if(getenv('HTTP_X_FORWARDED_FOR')) { $ip = getenv('HTTP_X_FORWARDED_FOR'); } elseif(getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('REMOTE_ADDR')) { $ip = getenv('REMOTE_ADDR'); } else { $ip = false; } } if(strpos($ip, ",")!==false) { $ips = explode(",", $ip); $ip = current($ips); unset($ips); } return $ip; } функция является универсальной для разных типов настроек и серверов. Удобно тем, что используя данную функцию - не нужно беспокоиться о том, на каких настройках или под какими системами анти-ддоса бегает сайт Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 082 Опубликовано: 10 марта 2017 Рассказать Опубликовано: 10 марта 2017 2 часа назад, killserver сказал: функция является универсальной для разных типов настроек и серверов. Она не является универсальной и правильной. Она является прямым путем к взлому сайта, т.к. то что HTTP_ позволяет отправить на сервер из вне. Т.е. не только прокси это могут послать, но и кто угодно. Единственным правильным и безопасным способом является получение этой информации только из $_SERVER['REMOTE_ADDR'] а для корректной проброски IP из прокси в nginx или апача уже делается настройки в серверном ПО. Любой приличный сервис по anti ddos предоставляет соответствующие модули для апача и для nginx. Кстати у nginx поддержка проброса IP есть из коробки. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.