На этом уроке, мы собираемся показать вам шаг за шагом инструкции о том, как разместить несколько веб – сайтов на одном IP – адресе с Apache или Nginx на Ubuntu или CentOS 7. Хостинг нескольких доменов/поддоменов на VPS с помощью виртуальных хостов Apache или с использованием серверных блоков в Nginx довольно не сложен.
Виртуальные хосты Apache позволяют пользователям запускать несколько веб-сайтов с одного IP-адреса, а также параметры точной настройки для каждого веб-сайта.
Создание веб-сайтов на заказ в веб-студии “SeoGain”. Веб-студия SeoGain.ru – профессиональные услуги по созданию профессиональных веб-сайтов, разработка и продвижение интернет проектов любой сложности.
Для того, чтобы настроить виртуальные хосты в Apache для размещения нескольких доменов/поддоменов, войдите в свой сервер через SSH и установите Apache:
Ubuntu или Debian:
apt-get update apt-get install apache2
CentOS или Fedora:
yum update yum install httpd
Создание резервную копию конфигураций Apache, а затем установите директивы виртуального хоста для ваших сайтов:
Ubuntu или Debian:
Изменение основного файла конфигурации Apache (/etc/apache2/apache2.conf) и раскомментируйте следующую строку, если это не было сделано ранее (# комментарии на конф файлах Apache):
vi /etc/apache2/apache2.conf IncludeOptional sites-enabled/*.conf
CentOS или Fedora:
Изменение основного файла конфигурации Apache (/etc/httpd/conf/httpd.conf) и раскомментируйте следующую строку:
vi /etc/httpd/conf/httpd.conf
NameVirtualHost *:80
Обратите внимание, что директива ‘NameVirtualHost‘ уже включена по умолчанию в Ubuntu 16.04 и CentOS 7.
Создание виртуальных хостов в Apache для каждого домена/поддомена. Например, можно создать виртуальные хосты для domain1.ru и domain2.ru:
Ubuntu или Debian:
# vi /etc/apache2/sites-available/domain1.conf <VirtualHost *:80> DocumentRoot “/var/www/html/domain1” ServerName domain1.ru ServerAlias www.domain1.ru # enter other directives here, e.g. : <Directory /var/www/html/domain1/> Options FollowSymLinks AllowOverride All Order allow,deny allow from all </Directory> ErrorLog /var/log/apache2/domain1.ru-error_log CustomLog /var/log/apache2/domain2.ru-access_log common </VirtualHost>
# VI /etc/apache2/sites-available/domain2.conf <VirtualHost *:80> DocumentRoot “/var/www/html/domain2” ServerName domain2.ru ServerAlias www.domain2.ru # enter other directives here </VirtualHost>
Активируйте конфигурацию ‘domain1.conf’ и ” domain2.conf в Apache с помощью:
ln -s /etc/apache2/sites-available/domain1.conf /etc/apache2/sites-enabled/domain1.conf ln -s /etc/apache2/sites-available/domain2.conf /etc/apache2/sites-enabled/domain2.conf
Или, используйте команду a2ensite, чтобы включить конфигурации “domain1.conf” и “domain2.conf” в Apache:
sudo a2ensite domain1.conf sudo a2ensite domain2.conf
Перезапустите Apache для того, чтобы изменения вступили в силу:
service apache2 restart
CentOS или Fedora: внести изменения в конфигурационный файл Apache (/etc/httpd/conf/httpd.conf) и добавьте виртуальные хосты в конце:
# vi /etc/httpd/conf/httpd.conf <VirtualHost *:80> DocumentRoot “/var/www/html/domain1” ServerName domain1.ru ServerAlias www.domain1.ru # enter other directives here </VirtualHost> <VirtualHost *:80> DocumentRoot “/var/www/html/domain2” ServerName domain2.ru ServerAlias www.domain2.ru # enter other directives here </VirtualHost>
Перезапустите Apache для того, чтобы изменения вступили в силу:
service httpd restart
Создайте каталоги /var/www/html/domain1 и /var/www/html/domain2, и загрузите свои веб-сайты в них.
Все файлы сайта должны быть доступны для чтения веб-сервером, поэтому установить правильную собственность:
Ubuntu или Debian:
chown www-data:www-data -R /var/www/html/domain*
CentOS или Fedora:
chown apache:apache -R /var/www/html/domain*
Для того чтобы настроить серверные блоки в Nginx для размещения нескольких доменов/поддоменов с помощью одного IP-адреса, войдите на свой сервер через SSH и установите Nginx:
Ubuntu или Debian:
apt-get update apt-get install nginx
CentOS или Fedora:
yum update yum install nginx
Создайте резервную копию конфигурации Nginx, а затем создайте блок сервера для первого веб-сайта:
Ubuntu или Debian:
Создайте новую конфигурацию Nginx для первого домена:
vi /etc/nginx/sites-available/domain1.conf
Добавьте следующие строки:
server { listen 80; server_name domain1.ru; root /var/www/html/domain1.ru; index index.html index.htm index.php; location / { try_files $uri $uri/ =404; } # add other directives here; }
CentOS или Fedora:
Выполните следующие команды:
mkdir /etc/nginx/sites-available mkdir /etc/nginx/sites-enabled
Добавьте следующие строки в основной конфигурационный файл Nginx (/etc/nginx/nginx.conf) в конце блока HTTP:
vi /etc/nginx/nginx.conf
include /etc/nginx/sites-enabled/*.conf;
Создайте новый файл конфигурации Nginx для первого веб-сайта:
vi /etc/nginx/sites-available/domain1.ru
server { listen 80; server_name domain1.ru; root /var/www/html/domain1.ru/; index index.html index.htm index.php; location / { try_files $uri $uri/ =404; } # add other directives here; }
включите конфигурацию ‘domain1.conf’ в Nginx с помощью:
sudo ln -s /etc/nginx/sites-available/domain1.com /etc/nginx/sites-enabled/
Перезапустите Nginx для того, чтобы изменения вступили в силу:
service nginx restart
Загрузить каждый веб-сайт в корневой каталог, указанный в блоке Nginx сервера, например:
mkdir -p /var/www/html/domain1
Установите соответствующую владельца файлов веб-сайта, так что они могут быть доступны с помощью веб-сервера Nginx (например, www-data):
chown -R www-data:www-data /var/www/html/domain1
Все. Повторите ту же процедуру для каждого дополнительного веб-сайта.
Обратите внимание, что для каждого домена или субдомена, которые вы хотите разместить на своем сервере, необходимо создать запись, которая указывает на IP-адрес вашего сервера и после изменения DNS, полностью распространится по всему Интернету, и посетители вашего сайта должны быть в состоянии получить доступ к вашему сайтов с помощью веб-браузера.