Як розмістити кілька веб-сайтів на одному VPS

У цьому підручнику ми збираємося надати вам покрокові вказівки як влаштувати кілька веб-сайтів на одній єдиній IP-адресі з Apache або Nginx на Ubuntu VPS або CentOS 7 VPS. Хостинг декількох доменів / субдоменів на VPS досить легко, використовуючи віртуальні хости в Apache або використовуючи серверні блоки в Nginx.

Віртуальні хости Apache

Віртуальні хости в Apache дозволяють користувачам запускати кілька веб-сайтів за допомогою однієї IP-адреси, а також настроювати налаштування для кожного веб-сайту.

Для того, щоб налаштувати віртуальні хости в Apache для розміщення декількох доменів / субдоменів, увійдіть на сервер через SSH та встановіть Apache:

Ubuntu або Debian:

apt-get update apt-get install apache2

CentOS або Fedora:

yum update yum встановити httpd

Створіть резервну копію конфігурації Apache, а потім налаштуйте віртуальні директиви хоста для своїх веб-сайтів:

Ubuntu або Debian:

Відредагуйте основний файл конфігурації Apache (/etc/apache2/apache2.conf) та скасуйте наступний рядок, якщо воно ще не було зроблено (# є коментарями в файлах konfig. Apache):

vi /etc/apache2/apache2.conf Включіть додаткові сайти / *. conf

CentOS або Fedora:

Відредагуйте основний файл конфігурації Apache (/etc/httpd/conf/httpd.conf) та скасуйте наступний рядок:

vi /etc/httpd/conf/httpd.conf
NameVirtualHost *: 80

Зверніть увагу, що директива NameVirtualHost вже включена за умовчанням для Ubuntu 16.04 та CentOS 7.

Створення віртуальних хостів в Apache для кожного домену / субдомену. Наприклад, створіть віртуальні хости для домену1.com і домену2.com:

Ubuntu або Debian:

vi /etc/apache2/sites-available/domain1.conf

<VirtualHost *: 80>
DocumentRoot "/ var / www / html / domain1"
Назва домену сервера1.com
ServerAlias ​​www.domain1.com

# введіть інші директиви тут, наприклад:

<Directory / var / www / html / domain1 />
Параметри FollowSymLinks
AllowOverride All
Замовлення дозволяє, заперечувати
дозвольте від усіх

</ Directory>
ErrorLog /var/log/apache2/domain1.com-error_log
CustomLog /var/log/apache2/domain2.com-access_log загальний
</ VirtualHost>

vi /etc/apache2/sites-available/domain2.conf

<VirtualHost *: 80>
DocumentRoot "/ var / www / html / domain2"
Назва домену сервера2.com
ServerAlias ​​www.domain2.com

# введіть інші директиви тут
</ VirtualHost>

Увімкнути конфігурацію "domain1.conf" та "domain2.conf" в Apache, використовуючи:

пер -s /etc/apache2/sites-available/domain1.conf /etc/apache2/sites-enabled/domain1.conf пров -s /etc/apache2/sites-available/domain2.conf / і т.д. / apache2 / сайти з підтримкою /domain2.conf

Або скористайтеся командою a2ensite, щоб включити конфігурацію "domain1.conf" та "domain2.conf" в Apache:

sudo a2ensite domain1.conf sudo a2ensite domain2.conf

Перезапустіть Apache, щоб зміни вступили в силу:

Сервіс apache2 перезавантаження

CentOS або Fedora:
Відредагуйте основний файл конфігурації Apache (/etc/httpd/conf/httpd.conf) та додайте віртуальні хости в кінці:

vi /etc/httpd/conf/httpd.conf

<VirtualHost *: 80>
DocumentRoot "/ var / www / html / domain1"
Назва домену сервера1.com
ServerAlias ​​www.domain1.com
# введіть інші директиви тут
</ VirtualHost>
<VirtualHost *: 80>
DocumentRoot "/ var / www / html / domain2"
Назва домену сервера2.com
ServerAlias ​​www.domain2.com
# введіть інші директиви тут
</ VirtualHost>

Перезапустіть Apache, щоб зміни вступили в силу:

служби HTTPD перезавантажити

Створіть / var / www / html / domain1 і / var / www / html / domain2 каталоги, а потім завантажте свої сайти на них.

Всі веб-сайти повинні бути доступними для читання веб-сервером, тому встановіть правильне володіння:

Ubuntu або Debian:

www-data: www-data-R / var / www / html / domain *

CentOS або Fedora:

chown apache: apache-r / var / www / html / domain *

Серверні блоки Nginx

Щоб настроїти серверні блоки в 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

Додайте до нього наступні рядки:

сервер {слухати 80; домен server_name1.com; root /var/www/html/domain1.com; index index.html index.htm index.php; розташування / {try_files $ uri $ uri / = 404; } # додавати інші директиви тут; }

CentOS або Fedora:

Виконайте такі команди:

mkdir / etc / nginx / sites-доступно mkdir / etc / nginx / sites-enabled

Додайте наступні рядки до основного конфігураційного файлу nginx (/etc/nginx/nginx.conf) в кінці блоку HTTP:

vi /etc/nginx/nginx.conf
включити /etc/nginx/sites-enabled/*.conf;

Створіть новий файл конфігурації nginx для першого веб-сайту:

vi /etc/nginx/sites-available/domain1.com
сервер {слухати 80; домен server_name1.com; root /var/www/html/domain1.com/; index index.html index.htm index.php; розташування / {try_files $ uri $ uri / = 404; } # додавати інші директиви тут; }

Увімкнути конфігурацію "domain1.conf" в nginx за допомогою:

sudo ln -s /etc/nginx/sites-available/domain1.com / etc / nginx / sites-enabled /

Перезапустити nginx, щоб зміни вступили в силу:

сервіс nginx перезавантаження

Завантажте кожен веб-сайт до кореневого каталогу, вказаного в блоці сервера nginx, наприклад:

mkdir -p / var / www / html / domain1

Встановіть правильну власність на файли веб-сайтів, щоб вони могли бути доступними веб-серверу nginx (наприклад, www-data):

chown -R www-data: www-data / var / www / html / domain1

Ось і це. Повторіть ту саму процедуру для кожного додаткового веб-сайту.

Зауважте, що для кожного домену або субдомену, який ви хочете розмістити на своєму сервері, вам слід створити запис A, який вказує на IP-адресу вашого сервера, і після того, як зміни в DNS повністю поширюватимуться по всьому Інтернету, відвідувачі вашого сайту повинні мати доступ до вашої веб-сайти за допомогою веб-браузера.

джерело

Залишити коментар

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.