- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день !
БД и Сайт на разных серверах. Не хотелось бы сейчас углубляться на тему почему так организовано, тому есть причины.
Для сайта заказал выделенный IP, проверяю, сайт именно на нем.
Дальше в панели VPS (где хостится база) задаю БД - пользователь - удаленный доступ - список IP - задаю этот IP и доступ к БД прекращается. Убираю IP все работает.
Подскажите пожалуйста, что я делаю не так.
Poljot, ип, на котором висит веб-сервер и ип, с которого он делает запросы вовне, могут отличаться
Подскажите пожалуйста, что я делаю не так.
Скорее всего причина в том, что вы пытаетесь самостоятельно выполнять работу системного администратора.
Для сайта заказал выделенный IP, проверяю, сайт именно на нем.
Дальше в панели VPS (где хостится база) задаю БД - пользователь - удаленный доступ - список IP - задаю этот IP и доступ к БД прекращается. Убираю IP все работает.
Где именно вы это задаёте? В какой именно панели? К какой БД?
Если речь о MySQL, то пользователи и базы данных заводятся в базе "mysql" в таблицах "user" и "db" соответственно.
Poljot, ип, на котором висит веб-сервер и ип, с которого он делает запросы вовне, могут отличаться
Извините за мою безграмотность, но я даже не понял вопрос.
Я так понимаю, что скрипт, который обращается к БД и имеет IP сайта.
Откуда возьмется другой IP ?
БД на VPS. Там все как я описал.
Скрипт сайта расположен на другом сервере на виртуальном хостинге, где для сайта закуплен статичный IP, который я и пытаюсь задавать для БД.
---------- Добавлено 05.01.2013 в 15:48 ----------
Poljot, ип, на котором висит веб-сервер и ип, с которого он делает запросы вовне, могут отличаться
Вот оно в чем дело, значит при использовании виртуального хостинга не получится просто купить статичный IP ?
А какой выход, может Хостер это сможет сделать, если попросить, или при виртуалке это в принципе не возможно ?
Что делать, то же брать VPS для скрипта сайта ?
Только при VPS, IP на котором висит скрипт и IP для запросов во вне не будут отличаться ?
Вам нужно узнать основной IP сервера, на котором расположен сайт, и открыть доступ к БД именно с этого IP.
Сделать это можно, например, если запросить скриптом с этого сайта (CURL-ом) какую-нибудь страницу, а потом посмотреть в логе, с какого IP был запрос.
Что делать, то же брать VPS для скрипта сайта ?
Только при VPS, IP на котором висит скрипт и IP для запросов во вне не будут отличаться ?
а почему нельзя скрипт разместить на том же впс что и бд? по моему это был бы самый оптимальный вариант как не крути
если надо хоть в лоб расшибиться но чтоб у сайта (скрипта) был другой ип чем у бд - то вполне возможно сделать у впс два ип (на одном апач сидит, на другом бд)- хотя опять же по моему это лишняя головоломка т.к. бд вообще не рекомендуеися делать открытой из вне, скрипты к ней через локалхост (ип 127.0.0.1 как раз точно совсем другой чем у сайта))) обращаются
;11283261']Вам нужно узнать основной IP сервера, на котором расположен сайт, и открыть доступ к БД именно с этого IP.
Сделать это можно, например, если запросить скриптом с этого сайта (CURL-ом) какую-нибудь страницу, а потом посмотреть в логе, с какого IP был запрос.
Скажите, а нельзя посмотреть IP с которого скрипт обращается к базе по логам в VPS, где она хостится ?
Скажите, а нельзя посмотреть IP с которого скрипт обращается к базе по логам в VPS, где она хостится ?
Если включен лог запросов - соответственно в нем и можно посмотреть.
Можно так же другими методами -
например посмотреть вывод tcpdump по порту мускуля
или посмотреть текущие запросы при помощи mysqladmin
Poljot, а что мешает посмотреть это в выводе команд status или show processlist?
Вам действительно необходимо выяснить IP с которого идет соединение к серверу с БД. т.к. к примеру он может подключатся через внутреннюю сеть хостинг-провайдера...
а то что сайт висит на каком то IP не значит что у хоста это главный IP с которого идут соединения, а лиш то что веб-сервер слушает подключения на этом IP
Частично разобрался, вот такой ответ от хостера:
Приобрести услугу выделенного ip можно, стоимость 140 рублей в месяц, но для использования этого адреса в качестве исходящего требуется специальным образом настроить скрипты
1. Использовать функцию socket_bind:
<?php
// Создаем новый сокет:
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
// Ваш выделенный IP-адрес:
$sourceip = 'xxx.xxx.xxx.xxx';
// Используем этот IP-адрес:
socket_bind($sock, $sourceip);
// Соединяемся с удаленным сервером:
socket_connect($sock, 'xmlsearch.yandex.ru', 80);
// Делаем запрос:
$request = 'GET /xmlsearch?query=' . $search . ' HTTP/1.0' ."\r\n" .'Host: xmlsearch.yandex.ru ' . "\r\n\r\n";
socket_write($sock, $request);
// Получаем и выводим ответ:
while(!socket_last_error($sock)){
if($buffer=socket_read($sock,512,PHP_NORMAL_READ)){
echo $buffer;
} }
// Закрываем сокет:
socket_close($sock);
?>
Здесь переменная $search обозначает только сам поисковый запрос, как это описано на сайте Яндекса, то, что написано после выражения «query=». При использовании PHP-интерпретатора как модуля Apache (по умолчанию на виртуальном хостинге именно так) работа с сокетами запрещена, поэтому следует использовать свой PHP-интерпретатор, собрать который можно по инструкции при конфигурировании обязательно указав ключ –enable-sockets.
2. C помощью curl_setopt:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_NOBODY, false);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_INTERFACE, "xxx.xxx.xxx.xxx");
curl_setopt($ch, CURLOPT_URL, $search);
$xml_data=curl_exec($ch);
curl_close($ch);
?>
Но куда вставлять это код, подскажите пожалуйста ?