Перейти к публикации

Рекомендованные сообщения

Всем привет.

 

Решил попробовать воспользоваться сервисом cloudflare.com.

 

Домен у меня зарегистрирован в http://nic.ru/  а сайт в https://www.reg.ru 

 

Подскажите, где правильнее будет сменить ns записи?

 

Сменил в рег ру через isp manager, так сайт сразу перестал работать сайт.

 

Если сменю в ниц.ру, будет ли работать то чтоне отмечено оранжевым облачком в cloudflare?

 

97f1f17f7e1a.png

Ссылка на сообщение
Поделиться на других сайтах
10 час назад, radrigo сказал:

Подскажите, где правильнее будет сменить ns записи?

Менять нужно там где зарегистрирован домен nic.ru. Меняете их на те что вам предоставил cloudlare.

 

10 час назад, radrigo сказал:

Сменил в рег ру через isp manager, так сайт сразу перестал работать сайт.

В ISP ничего трогать не нужно. Из ISP переписываете настройки доменов и поддоменов в cloudflare.

Ссылка на сообщение
Поделиться на других сайтах
6 часов назад, celsoft сказал:

Менять нужно там где зарегистрирован домен nic.ru. Меняете их на те что вам предоставил cloudlare.

 

В ISP ничего трогать не нужно. Из ISP переписываете настройки доменов и поддоменов в cloudflare.

Раз вы используете эту систему на сайте dle-news.ru, то наверняка знаете все нюансы, подскажите какие предпочтительнее выбрать настройки в разделе "Caching" для сайта на DLE.

 

Caching Level - что здесь будет предпочтительнее из 3-х предложенных вариантов?


Browser Cache Expiration - какое оптимальное будет время?


Development Mode - будут ли пользователи видеть свежедобавленные новости и комментарии когда стоит off?

 

e446f58f6018.png

 

Может ещё посоветуете какие нибудь настройки?

 

Заранее признателен за подсказку.

Ссылка на сообщение
Поделиться на других сайтах
38 минуты назад, radrigo сказал:

какие предпочтительнее выбрать настройки в разделе "Caching" для сайта на DLE.

Для DLE без разницы. Вам решать. В этих пунктах вы настраиваете кеширование статики:  картинок, стилей CSS, JS и т.д, а не новостей. Ваши новости будут видны сразу независимо от этих настроек.

 

Выключите "Always Online", т.к. у вас сайт динамический, а не просто статика.

Ссылка на сообщение
Поделиться на других сайтах

Прописал dns сегодня в часов 5 по москве, уже пишет что сайт подключен

Status: Active
This website is active on CloudFlare.

 

Понимаю что ещё зависит и от провайдера, они кэшируют dns.

 

Могу ли я как-то проверить, у меня уже через их сервера трафик идёт?

Визуально я ничего не заметил

Ссылка на сообщение
Поделиться на других сайтах

При пользовании данной услугой, у всех пользователей один айпи.

 

При замене кода $_SERVER['REMOTE_ADDR'] в в файлах

engine\modules\functions.php

engine\inc\include\functions.inc.php

Вместо ip пишет localhost

Ссылка на сообщение
Поделиться на других сайтах
<?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/)

Изменено пользователем webair
Ссылка на сообщение
Поделиться на других сайтах
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

 

Ссылка на сообщение
Поделиться на других сайтах

Для 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

Ссылка на сообщение
Поделиться на других сайтах

Ваш реальный 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';
}

 

Ссылка на сообщение
Поделиться на других сайтах
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 будет работать=)

Изменено пользователем radrigo
Ссылка на сообщение
Поделиться на других сайтах

А вообще чтоб нормально работало без изменения в скрипты движка, надо чтоб HTTP_X_FORWARDED_FOR выводил один ip адрес?

Что написать в поддержку хостинга?

Ссылка на сообщение
Поделиться на других сайтах
55 минут назад, radrigo сказал:

А вообще чтоб нормально работало без изменения в скрипты движка, надо чтоб HTTP_X_FORWARDED_FOR выводил один ip адрес?

Что написать в поддержку хостинга?

Ничего не надо писать, это нормально. У вас же через прокси получается сайт работает.

То что я прислал должно помочь.

Ссылка на сообщение
Поделиться на других сайтах
  • 1 год спустя...

немного подниму тему в силу того, что может кому-то да пригодится:

	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;
	}

функция является универсальной для разных типов настроек и серверов. Удобно тем, что используя данную функцию - не нужно беспокоиться о том, на каких настройках или под какими системами анти-ддоса бегает сайт

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, killserver сказал:

функция является универсальной для разных типов настроек и серверов.

Она не является универсальной и правильной. Она является прямым путем к взлому сайта, т.к. то что HTTP_ позволяет отправить на сервер из вне. Т.е. не только прокси это могут послать, но и кто угодно. Единственным правильным и безопасным способом является получение этой информации только из $_SERVER['REMOTE_ADDR'] а для корректной проброски IP из прокси в nginx или апача уже делается настройки в серверном ПО. Любой приличный сервис по anti ddos предоставляет соответствующие модули для апача и для nginx.  Кстати у nginx поддержка проброса IP есть из коробки.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...