×
Техническая документация

Архитектура системы VPS под «1С-Битрикс»

Система обслуживания WEB-запросов построена на базе двухуровневой архитектуры WEB-сервера: frontend и backend-сервер. В роли frontend-сервера используется прокси-сервер nginx, выполняющий акселерированное проксирование без кэширования статических объектов. В качестве backend-сервера — более функциональный и ресурсоёмкий Apache. Достаточно подробно схема двухуровневой модели WEB-сервера описана Сергеем Рыжиковым в рамках учебных курсов по настройке WEB-систем для работы с CMS «1С-Битрикс», и в контексте данного документа обсуждаться не будет. Следует отметить то, что статические объекты в нашем случае отдаются напрямую с диска средствами акселератора, минуя проксирование на backend.

Акселератор

Nginx является высокопроизводительным реверс-прокси HTTP-сервером, способным обслуживать несколько тысяч одновременных соединений, потребляя при этом минимум серверных ресурсов — на обработку одного проксированного HTTP-запроса nginx использует минимально необходимое количество системных вызовов и операций.

Конфигурационные файлы сервера находятся в /etc/nginx/conf:

  • nginx.conf — основной файл конфигурации, конфигурация главного сервера, а также включение конфигураций обслуживаемых виртуальных хостов.
  • vhosts/*.conf;

    Файл vhosts/vhost.sample содержит рекомендуемый шаблон контейнера добавляемого виртуального хоста.

Существует внутренний виртуальный хост, необходимый для снятия статистических данных с акселератора. Он использует адрес 127.0.0.254 и описывается он в файле vhosts/nginx-rrd.conf. Обращения к нему осуществляются ежеминутно скриптом. Доступна статистика сервера в виде графиков по адресу

http://vXXXX.vps.masterhost.ru/stat/
где XXXX — номер вашей VPS.

Внимание. На эту локацию установлен авторизованный доступ!

  • Логин: admin
  • Пароль: setup

    Советуем сменить пароль для этого пользователя. Это делается следующим образом:

    # /usr/bin/htpasswd /etc/httpd/.secure/.htpasswd admin
    New password:
    Re-type new password:
    Updating password for user admin

Графики строятся скриптом /usr/local/nginx/bin/nginx-rrd.pl (скрипт стороннего производителя).

Управление сервисом:

# /sbin/service nginx start
Starting nginx:                         [  OK  ]
# /sbin/service nginx restart
Stopping nginx:                         [  OK  ]
Starting nginx:                         [  OK  ]
# /sbin/service nginx stop
Stopping nginx:                         [  OK  ]

Основной WEB-сервер

Обработку программных сценариев осуществляет наиболее популярный WEB-сервер Apache. Конфигурация сервера находится в /etc/httpd/conf:

  • httpd.conf — основной файл конфигурации;
  • httpd.conf.orig — резервный файл конфигурации, необходим на случай изменения предыдущего;
  • vhosts/*.conf — хранилище конфигураций виртуальных хостов, vhost.conf.sample — рекомендуемый шаблон составления конфигурации виртуального хоста;

Существует локация http://vXXXX.vps.masterhost.ru/status/, где можно посмотреть статус WEB-сервера.

Внимание. На эту локацию установлен авторизованный доступ, если вы ещё не сменили реквизиты доступа к локации, то они совпадают с начальными установками:

  • Логин: admin
  • Пароль: setup

Управление сервисом:

# /sbin/service httpd start
Starting httpd:                         [  OK  ]
# /sbin/service httpd restart
Stopping httpd:                         [  OK  ]
Starting httpd:                         [  OK  ]
# /sbin/service httpd stop
Stopping httpd:                         [  OK  ]

FTP-сервер

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

XFerLog - /var/log/proftpd/xferlog

Запуск и остановка сервиса осуществляется средствами суперсервера по требованию.

MySQL-сервер

Установленный на сервере сервис MySQL версии 5.x.xx поддерживает тип таблиц InnoDB, горячо рекомендуемый разработчиками «1С-Битрикс» в качестве движка баз данных.

Основной конфигурационный файл сервера: /etc/my.cnf, лог состояния сервера и ошибок: /var/log/mysqld.log, файлы баз данных хранятся в директории /var/lib/mysql.

По умолчанию сервер ожидает соединения на все активные адреса на интерфейсе по стандартному порту 3306. Для пользователя root установлен беспарольный доступ к серверу по сокету /var/tmp/mysql.sock, т.о. для доступа на MySQL-сервер достаточно зайти на сервер под пользователем root и запустить MySQL-клиента.

Пароль для доступа в MySQL можно взять из файла /root/.mysql

[root@vXXXX ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.x.xx Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Управление сервисом:

# /sbin/service mysqld start
Starting MySQL:                           [  OK  ]
# /sbin/service mysqld restart
Stopping MySQL:                           [  OK  ]
Starting MySQL:                           [  OK  ]
# /sbin/service mysqld stop
Stopping MySQL:                           [  OK  ]

Для удобства администрирования сервера MySQL, установлен интерфейс phpMyAdmin, доступный по адресу вида

http://vXXXX.vps.masterhost.ru/phpmyadmin/

Обратите внимание, что для доступ к серверу для пользователя root через web-интерфейс phpMyAdmin нужно использовать пароль из файла /root/.mysql

Логи сервера

Почти каждый сервис VPS отражает ту или иную информацию в лог файлах. В настроенном VPS вращение системных логов осуществляется системной утилитой logrotate. Как правило, вносить изменения в конфигурацию системы вращения логов не требуется. Все логи хранятся в директории /var/log:

# ls -lh /var/log
...
httpd
nginx
proftpd
...