Nginx в качестве TDS - Форум успешных вебмастеров - GoFuckBiz.com - Страница 7
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB88.6852
BTC/USD68449.8413
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 28.08.2015, 07:27
Start Post: Nginx в качестве TDS 
  #61
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
По умолчанию

TDS - система распределения трафка, внутри которой можно настроить условия (схемы), по которым пришедший на сервер http-клиент (юзер) перенаправляется на тот или иной URL.


Как происходит перенаправление
Юзер попадает на TDS-url, More

Таким образом, на сервер с TDS приходит юзер, которому сервер отдает ответ либо сразу с редиректом, либо с небольшим кодом, который подействует на браузер и тот также выполнит редирект. Вся суть в "сервер отдает ответ"...или даже так: "веб-сервер отдает ответ с редиректом".

Для того, чтобы веб-сервер отдавал нужные ответы, его нужно правильно настроить!


Выбираем веб-сервер
Апач - говно, остается nginx

Раз выбрали nginx, то нужно описать его требования и возможности:

- про nginx есть такая картинка от 2011 года. 60000 запросов (или редиректов) в секунду...в секунду, КАРЛ! Хотя, само число сейчас уже больше, но при организации ТДС можно ориентироваться примерно на этот порядок, либо вообще забыть о каких-либо проблемах с производительностью (если не думать о логах и статистике) и все это на VPS за $10-20;
- для использования nginx в качестве TDS он должен быть установлен на сервере и у вас должен быть root-доступ к серверу, т.е. виртуальные-хостинги не подходят - нужен либо дедик, либо vps/vds/cloud;
- для работы nginx-tds нужно написать правила редиректов, либо заинклудить в nginx-конфиг уже написанные, заранее припасенные правила;
- для составления правил nginx использует свой простой и понятный язык (DSL). В нем есть регескпы, if-ы, переменные и другие известные всем языковые конструкции, но многого чего нет и поэтому реализация некоторых вещей выглядит нелепо, но скорость работы при этом очень приятная. Конфиг файл nginx обычно называется nginx.conf и лежит где-то на сервере в папке /etc/nginx/, остальные файлы в него инклудятся;
- к nginx есть куча модулей на все случаи жизни;
- при организации ТДС проблема будет со статистикой, т.к. nginx может только писать логи, а их анализ и красивое представление в виде табличек - это все не к нему. Анализировать их можно каким-то готовым софтом, либо самим написать что-то простенькое, либо неанализировать совсем, т.к. это не всегда нужно;

Часто можно слышать: "У меня нет такого объема трафа, мне nginx не нужен"
Отвечаю: траф - это не только те уники, которые редиректятся и приносят прибыль с партнерок. Траф - это еще и боты, доля которых может занимать 99% трафика на сервере. Если вы делите траф на ботов и не ботов, чтобы редиректить только юзеров, то nginx может помочь определить где бот, а где не бот. По это теме был топик тут.


Как пользоваться
Сам редирект обычно выполняется директивой return

выглядит как-то так:

More

Предлагаю в этом топике спрашивать или делиться своими решениями по настройке nginx в качестве системы управления трафиком.

Всем nginx
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser

Последний раз редактировалось chesser; 28.08.2015 в 07:41.
chesser вне форума  
Старый 10.02.2016, 18:50   #62
chesser
автоматизирую интернеты
 
Аватар для chesser
 
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
ТС -->
автор темы ТС По умолчанию

Цитата:
Сообщение от sashawww
кликаю по ссылке http://dor1.ru/adult1 в своём доре, переход идёт всегда на http://site1.co.uk
Попробовал в другом браузере, там переход идёт всегда на http://site2.net Почему так?
Как правильно сделать редирект на случайный урл?
вроде нормальное решение, не вижу ошибки, все почти как в их хелпе. Попробуй отладить или сократи количество вариантов или поменяй переменную, чтобы убедиться что split_clients вообще работает, смотри что в логах, может ошибка какая-то.

Либо погугли еще примеры реализации nginx load balancing - там также можно задать вес вирт.серверов, на которые перенаправляется соединение.
__________________
USA и NL серверы и VPS | wiki | блог | Drupal | NginxТДС
Ave, Google, morituri te salutant! © chesser
chesser вне форума