Привет! На связи Антон Резник. У себя в блоге я рассказываю как создать ПП и не разориться. Например, в этом посте мы говорили как партнерке защищать контакты своих прямых реклов, чтобы никто по ссылке автологина не смог докопаться до чувствительных данных.
Сегодня расскажу как технически реализовать методы из прошлой статьи. Речь пойдет о подмене домена сайта. Использовать эти способы можно, разумеется, не только для защиты контактов рекламодателя, а и в других целях. Все зависит от вашей фантазии.
Сразу предупреждаю, материал будет понятен только тем, кто понимает техничку. Общее направление постараюсь разжевать научно-популярно, но для реализации нужно кинуть ссылку на статью своему технарю.
Метод 1. Белизна
Белизна — это бесплатная микро-CMS от AlterCPA с открытым исходным кодом. Подробно посмотреть можно тут.
Алгоритм использования:
- Завести любой хостинг с поддержкой PHP, привязать к нему купленный домен.
- Из репозитория тащатся файлы .htaccess и index.php, закидываются на сервер.
- Если сервер Nginx, настройки надо смотреть тут.
- В файле index.php убирается # перед WHITEDOMAIN, вписывается туда домен целевого сайта (который подменяем) вот так: define( ‘WHITEDOMAIN’, ‘mydomain.com’ ).
- Если целевой сайт работает только по HTTPS, нужно убрать # перед WHITEHTTPS.
- Далее нужно сохранить файл index.php.
- Заходим на свой домен и видим нужный чужой сайт.
Преимущества: можно использовать простой хостинг, простая настройка реализуется заменой пары строк.
Недостатки: не самый стабильный прокси, может глючить на некоторых сайтах.
Метод 2. Парковка на смартлинк
Используем ту же Белизну, только в режиме Смартлинк. Алгоритм такой же, только вместо домена можно использовать ссылку с хвостом. К примеру, полная ссылка автологина. Функционала у этого метода больше за счет возможность указывать полную ссылку, а не только домен. Из недостатков — при проблемах с куки сбрасывается сессия целиком и могут теряться данные.
Метод 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;
}
Если хочется использовать кеширование:
- Создаётся папка для кеша, например, /var/www/cache.
- Далее папку нужно отдать пользователю Nginx: chown nginx:nginx /var/www/cache.
- В файле /etc/nginx/nginx.conf в блоке http добавляется: proxy_cache_path /var/www/cache levels=1:2 keys_zone=STATIC:10m inactive=24h max_size=1g.
- В файле конфигурации сайта перед 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
Это самый простой способ, с которым можно справиться и без технических навыков и при этом получить стабильную работу. О нем подробнее расскажу у себя в блоге, подписывайся.
Вывод
Подмена домена целевого сайта может пригодиться в разных случаях. Например, когда нужно скрыть контакты прямого рекла. Есть несколько способов это сделать, о трех рассказал выше, еще один будет вот по этой ссылке. Не забудь подписаться!