Управление веб-сайтами на общем хостинге

Услуга общего хостинга — это среда веб-хостинга, в которой несколько веб-сайтов размещаются на одном сервере. Вот несколько методов, обычно используемых в средах общего хостинга, а также примеры кода:

  1. Виртуальные хосты. Виртуальные хосты позволяют серверу размещать несколько веб-сайтов с разными доменными именами на одном IP-адресе. Вот пример конфигурации Apache:
<VirtualHost *:80>
    ServerName www.example1.com
    DocumentRoot /var/www/example1
</VirtualHost>
<VirtualHost *:80>
    ServerName www.example2.com
    DocumentRoot /var/www/example2
</VirtualHost>
  1. Изоляция файлов. Чтобы обеспечить безопасность и стабильность общего хостинга, крайне важно изолировать файлы и каталоги для каждого веб-сайта. Вот пример изоляции файлов веб-сайта с помощью структуры каталогов:
/var/www/
├── example1.com
│   ├── public_html
│   ├── logs
│   └── ...
├── example2.com
│   ├── public_html
│   ├── logs
│   └── ...
└── ...
  1. Ограничение ресурсов. Службы общего хостинга часто налагают ограничения на ресурсы, чтобы обеспечить справедливое использование веб-сайтами. Вот пример ограничения использования ЦП и памяти с помощью Cgroups в Linux:
# Limit CPU usage to 50%
cgcreate -g cpu:example1
echo 50000 > /sys/fs/cgroup/cpu/example1/cpu.cfs_quota_us
# Limit memory usage to 1GB
cgcreate -g memory:example1
echo 1G > /sys/fs/cgroup/memory/example1/memory.limit_in_bytes
  1. Отдельные базы данных. Каждый веб-сайт в среде общего хостинга должен иметь собственную базу данных для изоляции данных. Вот пример использования MySQL:
-- Create a new database
CREATE DATABASE example1;
-- Grant privileges to a user
GRANT ALL PRIVILEGES ON example1.* TO 'username'@'localhost' IDENTIFIED BY 'password';
  1. Мониторинг ресурсов. Мониторинг использования ресурсов помогает выявить любое ненормальное поведение или проблемы с производительностью. Вот пример использования команды «top» в Linux для мониторинга использования процессора и памяти:
top -u www-data