Как подменить домен сайта: 4 способа

Как подменить домен сайта: 4 способа

Продолжаем тему, как партнёрке защищать контакты своих прямых реклов. В этой статье расскажу, как технически реализовать описанные методы. Речь пойдет о подмене домена сайта. Использовать эти способы можно, разумеется, не только для защиты контактов рекламодателя, но и в других целях. Все зависит от вашей фантазии.

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

Метод 1. Белизна

AlterCPA White, она же Белизна — это бесплатный миниатюрный прокси от AlterCPA с открытым исходным кодом. Подробно посмотреть можно в нашем GitLab.

Преимущества: можно использовать простой хостинг, простая настройка реализуется заменой пары строк.

Недостатки: не самый стабильный прокси, может глючить на некоторых сайтах.

Алгоритм использования:

  1. Завести любой хостинг с поддержкой PHP, привязать к нему купленный домен.
  2. Из репозитория тащатся файлы .htaccess и index.php, закидываются на сервер.
  3. Если сервер Nginx, настройки надо смотреть тут.
  4. В файле index.php убирается # перед WHITEDOMAIN, вписывается туда домен целевого сайта (который подменяем) вот так: define( 'WHITEDOMAIN', 'mydomain.com' ).
  5. Если целевой сайт работает только по HTTPS, нужно убрать # перед WHITEHTTPS.
  6. Далее нужно сохранить файл index.php.
  7. Заходим на свой домен и видим нужный чужой сайт.

Метод 2. Парковка на смартлинк

Используем ту же Белизну, только в режиме Смартлинк — о нём я уже рассказывал в этой статье. Алгоритм похожий, только вместо домена можно использовать ссылку с хвостом в параметре SMARTLINK. К примеру, полная ссылка автологина. Функционала у этого метода больше за счет возможность указывать полную ссылку, а не только домен.

Преимущества: настройка парой файлов, можно использовать ссылку с хвостом, например готовый автологин.

Недостатки: нестабильное соединение, при проблемах с куки сбрасывается сессия целиком и могут теряться данные.

Метод 3. Настройка на сервере Nginx

Этот способ — самый правильный вариант. Реализуется не через Белизну, это полноценное серверное решение. В итоге получается быстрое проксирование на надежном веб-сервере.

Преимущества: отличное быстрое проксирование, надёжный и проверенный годами веб-сервер

Недостатки: нужен отдельный сервер, нужно знание настройки Nginx

Конфигурации сайтов лежат в глубине Linux-сервера по пути /etc/nginx/sites-enabled. Вместо target.domain.com указывается домен исходного сайта. В конфигурацию вашего сайта вместо существующего location / нужно вставить:

location / {
  proxy_pass              http://target.domain.com;
  proxy_set_header        Host target.domain.com;
  proxy_buffering         on;
  proxy_redirect          http://target.domain.com $scheme://$host;
  proxy_set_header        X-Real-IP $remote_addr;
  proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header        X-Forwarded-Host $host;
  proxy_set_header        X-Forwarded-Proto $scheme;
}

Если хочется использовать кеширование:

  1. Создаётся папка для кеша, например, /var/www/cache.
  2. Далее папку нужно отдать пользователю Nginx: chown nginx:nginx /var/www/cache.
  3. В файле /etc/nginx/nginx.conf в блоке http добавляется:
    proxy_cache_path /var/www/cache levels=1:2 keys_zone=STATIC:10m inactive=24h max_size=1g.
  4. В файле конфигурации сайта перед location / надо добавить:
location ~* .(js|css|png|jpg|jpeg|gif|ico|woff|svg)$ {
  proxy_cache             STATIC;
  proxy_cache_valid       200 1d;
  proxy_cache_methods     GET;
  proxy_cache_use_stale   error timeout invalid_header updating http_500 http_502 http_503 http_504;
  proxy_pass              http://target.domain.com;
  proxy_set_header        Host target.domain.com;
  proxy_buffering         on;
  proxy_redirect          http://target.domain.com $scheme://$host;
  proxy_set_header        X-Real-IP $remote_addr;
  proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header        X-Forwarded-Host $host;
  proxy_set_header        X-Forwarded-Proto $scheme;
}

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

Метод 4. Private Flare

Можно взять все плюсы всех способов выше и объединить их в одном сервисе. Нечто подобное мы с командой и творим в Private Flare.

Преимущества: отличный прокси, поддерживает кеширование и сжатие, визуальная настройка.

Недостатки: стоит денег, выдаётся только по приглашениям, требует отдельный сервер.

Процесс настройки:

  1. Свяжитесь с ребятами из AlterCPA и запросите себе доступ.
  2. Купите себе сервер на Centos 8 и зайдите на него от root.
  3. В панели управления PrivateFlare перейдите в Nodes и нажмите на зелёный плюсик.
  4. Появится строчка установки, выполните её на сервере.
  5. Перейдите в раздел Domains, там нажмите плюсик.
  6. В поле Backend IP укажите IP-адрес вашего целевого сайта.
  7. В поле Mask as укажите его домен.
  8. В поле Domains укажите домен или список доменов, которые хотите использовать.
  9. Нажмите Add.
  10. В настройках DNS своих доменов укажите им А-запись с адресом сервера из пункта 2.
  11. В течение нескольких минут после активации DNS, все домены станут доступны и будут показывать целевые сайты.

Вывод

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

Впервые опубликовано на Afftimes