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

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

Есть сайт на домене .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.

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

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


Реклама: ООО «КЛАУДПЭЙМЕНТС». ИНН 7708806062. ERID: CQH36pWzJqCRJ4UXeNjXpDqc5rqRHP2xLyH2ojpuzzBdYG
Реклама: ООО 'РЕГ.РУ Домены Хостинг'. ИНН 6312068502. ERID: CQH36pWzJqCRJ4UXaHSnYxUB4bq5fyuvNiq5y4geRNH7vF

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

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

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

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

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

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