BitrixVM и многосайтовость на доменах, да еще и с алиасами доменов

Возникла тут интересная задача реализации многосайтововости на доменах. 
Есть сайт на домене .ru, контент сайта фильтруется по регионам, т.е. имеются сайты вида: moscow.sitename.ru, piter.sitename.ru, kiev.sitename.ru, kharkov.sitename.ru .... и так все регионы (как вы понимаете, список регионов постоянно расширяется...). Возникла необходимость в вынесении украинских регионов на украинский домен sitename.com.ua.

продолжаю перенос со своего блога ...

Доброго здоровья!

Возникла тут интересная задача реализации многосайтовости на доменах.

Есть сайт на домене .ru, контент сайта фильтруется по регионам, т.е. имеются сайты вида: moscow.sitename.ru, piter.sitename.ru, kiev.sitename.ru, kharkov.sitename.ru .... и так все регионы (как вы понимаете, список регионов постоянно расширяется...). Возникла необходимость в вынесении украинских регионов на украинский домен sitename.com.ua.

ru-сайт был поднят на BitrixVM, как сайт по умолчанию (до меня), ДНС-ы самого домена и всех его алиасов были настроены на IP сервера. Все алиасы обрабатываются на стороне сайта так что для сервера никаких проблем с обработкой поддоменов и разбросом их по различным папкам тут нет. Точнее не было, пока не было необходимости выделения украинской части сайта в отдельный сайт.

Как-то скомкано получается изложить всю проблему, но, надеюсь, кому нужно - поймут.

И вот начал я настройку многосайтовости. В админке битрикса вторую лицензию занял новым укр. сайтом. В админке виртуальной машины завел дополнительный сайт для .com.ua. Настроил днс-ы украинского домена и его алиасов аналогично значениям ру-домена.

Открываю сайт sitename.com.ua - попадаю в верную папку. Радуюсь. А вот дальше начинается счастье... Т.к. в настройках серверов я чуть сильнее чайника, то посмотрев на файлы конфигурации nginx, впал в ступор - понимаю, где править нужно, но не понимаю, что. Пришлось обращаться к знакомому сервернику. За что ему как всегда, огромное спасибо! Кому нужен специалист такого профиля - переходите по ссылке:)

Итак, решение задачи заключалось в правке всего 4-х файлов:

  • /etc/nginx/bx/site_avaliable/s1.conf
  • /etc/nginx/bx/site_avaliable/bx_ext_sitename.com.ua.conf
  • /etc/httpd/bx/conf/bx_ext_sitename.com.ua.conf
  • /etc/httpd/bx/conf/default.conf

По очереди.

/etc/nginx/bx/site_avaliable/s1.conf

В данном файле было так:

server {
...
server_name _;
...
set $proxyserver   "http://127.0.0.1:8888";
set $docroot      "/home/bitrix/www";

index index.php;
root /home/bitrix/www;
}

подменяем параметр "server_name", прописывая сюда ру-домен с алиасами:

server {

...
server_name *.sitename.ru sitename.ru;
...
set $proxyserver   "http://127.0.0.1:8888";
set $docroot      "/home/bitrix/www";

index index.php;
root /home/bitrix/www;
}

/etc/nginx/bx/site_avaliable/bx_ext_sitename.com.ua.conf

было так:

server {
listen 80 ;

server_name sitename.com.ua www.sitename.com.ua;

access_log /var/log/nginx/sitename_access.log main;
error_log  /var/log/nginx/sitename_error.log warn;

...
set $proxyserver  "http://127.0.0.1:8887";

set $imcontenttype "text/html; charset=utf-8";
set $docroot      "/home/bitrix/ext_www/sitename.com.ua";

index index.php;
root "/home/bitrix/ext_www/sitename.com.ua";

# Redirect to ssl if need
if (-f /home/bitrix/ext_www/sitename.com.ua/.htsecure) { rewrite ^(.*)$ https://$host$1 permanent; }
...
}

стало так:

server{
listen 80 ;

server_name *.sitename.com.ua sitename.com.ua;

access_log /var/log/nginx/sitename_access.log main;
error_log  /var/log/nginx/sitename_error.log warn;

...
set $proxyserver  "http://127.0.0.1:8887";

set $imcontenttype "text/html; charset=utf-8";
set $docroot      "/home/bitrix/ext_www/sitename.com.ua";

index index.php;
root "/home/bitrix/ext_www/sitename.com.ua";

# Redirect to ssl if need
if (-f /home/bitrix/ext_www/sitename.com.ua/.htsecure) { rewrite ^(.*)$ https://$host$1 permanent; }
...
}

т.е. тоже меняем параметр server_name.

На этом с nginx готово. Правим настройки апача

/etc/httpd/bx/conf/default.conf

в данном файле в самом начале прописываем:

Listen 127.0.0.1:8888
    <VirtualHost 127.0.0.1:8888>
    ServerName sitename.ru
    ServerAlias *.sitename.ru

Т.е. добавляем ServerName и ServerAlias для ру-сайта. В остальном - файл остается без изменений

Дальше - по файлу

/etc/httpd/bx/conf/bx_ext_sitename.com.ua.conf

В нем вносим всего одну правку - вместо

ServerAlias www.sitename.com.ua

вписываем

ServerAlias *.sitename.com.ua

Все! Перезагружаем апач и nginx.

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

Количество показов: 9490
13.03.2015

Возврат к списку

Если вам была полезна статья можете отблагодарить автора:
Ethereum:

0x16Df809287333C49D3A237296C6248A6c08702Bc

Разработка сайта

Подайте заявку на разработку сайта на базе готового решения от компании 1С-Битрикс или одного из партнеров компании. Максимально подробно опишите, чему будет посвящен сайт, если это интернет-магазин - что он будет продавать, нужна ли мультиязычность, будут ли разные типы цен (розница, опт, крупный опт), будет ли интеграция с 1С, будет ли выгрузка товаров на различные торговые площадки...

Сопровождение сайта

Вы можете подать заявку на сопровождение вашего сайта на базе 1С-Битрикс. Сопровождение включает в себя: проверка актуальности обновлений сайта, проверка актуальности резервной копии, консультации по сайту. Опишите в заявке, какие еще объемы планируются на сопровождении и на какой срок вы планируете заключить договор на сопровождение - мы подберем подходящий вам бюджет на сопровождение

Работы по сайту

Вы можете подать заявку на выполнение определенного объема работ по сайту. Опишите в заявке объем работ. Это может быть разработка какого-то нового функционала, доработки по имеющемуся функционалу, доработки под требования сео-специалистов. На основании заявки вам будет сформирован бюджет работ, а также названы сроки на выполнение тех или иных работ.