Как разместить два или более сайта на одном droplet в DigitalOcean?

Привет всем! <br/> У меня возникли трудности с настройкой двух сайтов на дроплете, имея два домена. Один сайт уже работает успешно на протяжении двух лет. <br/> При настройке второго сайта, несмотря на создание отдельной папки и виртуального хоста с соответствующими данными, новый домен по-прежнему перенаправляет на старый сайт. В результате оба домена показывают один и тот же сайт, и второй домен не связывается с его конфигурациями. Что может быть не так?
  • 29 сентября 2024 г. 17:03
Ответы на вопрос 2
Привет! Разместить два или более сайта на одном droplet в DigitalOcean вполне реально. Вам нужно правильно настроить конфигурацию веб-сервера для правильной работы виртуальных хостов. Предполагая, что вы используете Apache или Nginx, вот общие шаги, которые могут помочь вам решить вашу проблему.

### Для Apache

1. **Создайте папки для сайтов**:
   ```bash
   sudo mkdir -p /var/www/oldsite.com/public_html
   sudo mkdir -p /var/www/newsite.com/public_html
   ```

2. **Установите права доступа**:
   ```bash
   sudo chown -R $USER:$USER /var/www/oldsite.com/public_html
   sudo chown -R $USER:$USER /var/www/newsite.com/public_html
   ```

3. **Создайте виртуальные хосты**:
   Создайте конфигурационный файл для первого сайта:
   ```bash
   sudo nano /etc/apache2/sites-available/oldsite.com.conf
   ```

   Заполните его следующим образом:
   ```
   <VirtualHost *:80>
       ServerAdmin [email protected]
       ServerName oldsite.com
       ServerAlias www.oldsite.com
       DocumentRoot /var/www/oldsite.com/public_html
       ErrorLog ${APACHE_LOG_DIR}/oldsite.com-error.log
       CustomLog ${APACHE_LOG_DIR}/oldsite.com-access.log combined
   </VirtualHost>
   ```

   Создайте аналогичный файл для второго сайта:
   ```bash
   sudo nano /etc/apache2/sites-available/newsite.com.conf
   ```

   Содержимое может быть следующим:
   ```
   <VirtualHost *:80>
       ServerAdmin [email protected]
       ServerName newsite.com
       ServerAlias www.newsite.com
       DocumentRoot /var/www/newsite.com/public_html
       ErrorLog ${APACHE_LOG_DIR}/newsite.com-error.log
       CustomLog ${APACHE_LOG_DIR}/newsite.com-access.log combined
   </VirtualHost>
   ```

4. **Активируйте виртуальные хосты**:
   ```bash
   sudo a2ensite oldsite.com.conf
   sudo a2ensite newsite.com.conf
   ```

5. **Перезапустите Apache**:
   ```bash
   sudo systemctl restart apache2
   ```

### Для Nginx

1. **Создайте папки для сайтов**:
   (аналогично предыдущему)

2. **Создайте конфигурацию для первого сайта**:
   ```bash
   sudo nano /etc/nginx/sites-available/oldsite.com
   ```

   Содержимое:
   ```
   server {
       listen 80;
       server_name oldsite.com www.oldsite.com;

       root /var/www/oldsite.com/public_html;
       index index.html index.htm;

       location / {
           try_files $uri $uri/ =404;
       }
   }
   ```

3. **Создайте конфигурацию для второго сайта**:
   ```bash
   sudo nano /etc/nginx/sites-available/newsite.com
   ```

   Содержимое:
   ```
   server {
       listen 80;
       server_name newsite.com www.newsite.com;

       root /var/www/newsite.com/public_html;
       index index.html index.htm;

       location / {
           try_files $uri $uri/ =404;
       }
   }
   ```

4. **Активируйте конфигурации**:
   ```bash
   sudo ln -s /etc/nginx/sites-available/oldsite.com /etc/nginx/sites-enabled/
   sudo ln -s /etc/nginx/sites-available/newsite.com /etc/nginx/sites-enabled/
   ```

5. **Проверьте конфигурацию на ошибки**:
   ```bash
   sudo nginx -t
   ```

6. **Перезапустите Nginx**:
   ```bash
   sudo systemctl restart nginx
   ```

### Дополнительные проверки

1. **DNS**: Убедитесь, что записи DNS для обоих доменов указывают на IP-адрес вашего droplet.
2. **Кэш**: Убедитесь, что у вас нет проблемы с кэшированием, попробуйте очистить кэш браузера или использовать другой браузер.

После выполнения этих шагов оба сайта должны работать корректно. Если проблема все еще возникает, внимательно проверьте конфигурационные файлы и логи.
Вроде разобрался. 

Удалил все хосты, создал заново, удалил все сертификаты и переустановил и заработало.

Магия.
Похожие вопросы