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

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

979
13.03.2015

Возникла тут интересная задача реализации многосайтововости на доменах. 
Есть сайт на домене .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

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

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.

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


Источник: http://dev.1c-bitrix.ru/community/webdev/user/60622/blog/13177/


Благодарю за внимание! Делитесь вашими замечаниями в комментариях ниже.


P.S. Обращайтесь ко мне за приобретением лицензий и продлений на 1C-Битрикс "Управление сайтом", лицензий на облачную и коробочную версии Битрикс 24 а также за приобретением и внедрением готовых решений на базе 1С-Битрикс от партнеров. За более подробной информацией свяжитесь со мной любым удобным для вас способом


Комментарии

Еще никто не комментировал данную публикацию. Будьте первыми!

Добавить комментарий

captcha

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