Настройка мультисайтовости Битрикс

Недавно столкнулся со следующей проблемой — нужно было перенести корпоративный сайт  битрикс на новый хостинг.

Проблема была в том, что на одном движке работали несколько сайтов

Сделать архив через админку не составило труда, а вот заставить работать несколько сайтов с разными доменными именами на одном IP сразу не получилось. В связи с этим, хочу рассказать как настроить мультисайтовость на примере виртуальной машины bitrix, с развернутым бэкапом. И так — у нас есть несколько сайтов, с разными доменами, использующие одну копию нашей CMS.

Скачиваем виртуальную машину, запускаем ее в нашем гипервизоре, смотрим на то, какой IP она получила, и заходим в веб интрефейс, что бы развернуть бекап.

Ура, получилось, основной сайт работает. У нас остались папки с остальными сайтами. Допустим у нас есть папка и домен site2.com Для теста на локальной машине, правим файл hosts (c:\windows\system32\drivers\etc\hosts) и вносим запись IP_виртуальной машины site2.com

Далее копируем папку с нашим сайтом на веб-сервер, я для теста скопировал его в директорию bitrix, /home/bitrix/www/site2

Скопировать на сервер можно через SSH, используя утилиту PSCP

Утилита консольная,  и простая, синтаксис следующий:

c:\pscp.exe -r c:\site2 root@192.168.1.1:/home/bitrix/www/

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

c:\pscp.exe -r c:\site2\* root@192.168.1.1:/home/bitrix/www/site2

Теперь нужно настроить конфиги сервера. В данном случае, nginx принимает запрос на порт 80, передает на внутренний веб сервер, который уже перенаправляет запрос на нужный сайт, в зависимости от имени. Каждый сайт внутри висит на своем порту.

Правим первый конфиг веб сервера /etc/httpd/bx/conf/default.conf, там уже есть настройки нашего первого сайта.

default.conf

Копируем этот конфиг целиком в конец сайта. Что нам нужно в нем поменять для нового сайта:

Listen 127.0.0.1:8889
<VirtualHost 127.0.0.1:8889>
ServerAdmin webmaster@localhost
DocumentRoot /home/bitrix/www/site2

Меняем номер порта на единичку больше, и прописываем новый корень сайта (там где будет лежать сайт)

Правим  второй конфиг /etc/nginx/bx/site_avaliable/s1.conf

Примечание

Можно создать отдельный конфиг для каждого сайта, например s2.conf

данные конфиги подтягиваются в основной файл /etc/nginx/nginx.conf, если зайти в него, внизу можно увидеть строку:

# Set default website
include bx/site_enabled/*.conf;

В папке site_enabled лежат символические ссылки на конфиги в папке site_available

Предположим, в site_available мы создали второй конфиг s2.conf, что бы он заработал, создадим символическую ссылку на папку site_enable

ln -s /etc/nginx/bx/site_avaliable/s1.conf  etc/nginx/bx/site_enable

Но мы продолжим работать с одним конфигом s1.conf. В нем мы видим

s1.conf

Копируем целиком эту конструкцию, вставляем в конец. Что нужно исправить:

server {

listen 80;                    здесь убираем default server
server_name mysite2.com www.mysite2.com;   Здесь прописываем наши домены, по ним будет открываться наш второй сайт
server_name_in_redirect off;

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host:80;

set $proxyserver «http://127.0.0.1:8889«; Правим на тот порт, который мы указали в /etc/httpd/bx/conf/default.conf
set $docroot «/home/bitrix/www/site2«; Указываем директорию к корню нашего сайта

index index.php;
root /home/bitrix/www/site2Указываем директорию к корню нашего сайта

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

# Include parameters common to all websites
include bx/conf/bitrix.conf;

# Include server monitoring locations
include bx/server_monitor.conf;
}

 

Готово. Теперь важный момент — для того что бы сайты заработали, и использовали ядро битрикса, нужно прописать ссылки на него, для нашего второго сайта.

ln -s /home/bitrix/www/bitrix /home/bitrix/www/site2

ln -s /home/bitrix/www/upload /home/bitrix/www/site2

Теперь в директории нашего второго сайта появились ссылки на каталоги битрикса.

Перезапускаем сервисы:

/etc/init.d/nginx restart

/etc/init.d/httpd restart

Прописываем в админке битрикса путь к корневой директории нашего второго сайта /home/bitrix/www/site2

Теперь в браузере по ссылке site2.com и www.site2.com должен открываться сайт из директории /home/bitrix/www/site2

Статья является не претендует на мануал по настройке nginx и bitrix, и написана из личного опыта.

Если у Вас есть вопросы, задавайте их на форуме, или ниже в комментариях.

 

 

 

Пока нет комментариев

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Реклама

Реклама

Tags