Назад | Перейти на главную страницу

Как разместить поддомен CloudFlare DNS на другом IP

Я использую CloudFlare для DNS и Digital Ocean для серверов.

Назовем мой сайт "example.com". Работает нормально.

Теперь я создал второй сервер с другим IP. Я хочу, чтобы новый поддомен "staging.example.com" указывал на этот второй IP-адрес.

В CloudFlare я попытался создать вторую запись «А». Вот экспорт моих настроек (частично отредактирован, а также изменен, чтобы использовать пример доменного имени):

;; A Records
example.com.    1   IN  A   192.■■■.135.106
staging.example.com.    1   IN  A   157.■■■.174.87

Переход на example.com по-прежнему работает.

Однако при переходе на сайт staging.example.com возникает «Ошибка 522 Время ожидания соединения истекло».

Что я делаю не так? Как сделать так, чтобы субдомен указывал на IP-адрес, отличный от его родительского домена?

P.S. я мысль возможно, проблема была в моей конфигурации Nginx, но теперь я сомневаюсь, что это проблема, потому что я смог временно изменить ее на example2.com вместо staging.example.com, а затем временно изменить CloudFlare DNS этого другого домена, которым я владею (example2.com), и он загрузился нормально.


P.P.S. Теперь для целей отладки моя конфигурация Nginx говорит:

server_name staging.example.com example2.com;

И я оставил запись субдомена «A» в CloudFlare DNS как «Только DNS» (серое облако).

Затем в моем DNS CloudFlare для example2.com (другой принадлежащий мне домен) я временно указал его на 157. ■■■ .174.87.

А переход на staging.example.com приводит к появлению сообщения «Этот сайт недоступен. Staging.example.com не отвечает слишком долго. ERR_CONNECTION_TIMED_OUT ».

Но переход на example2.com работает.

Это заставляет меня думать, что конфигурация Nginx в порядке. Правильно? Так что не так?

Вы можете использовать следующий скрипт для создания поддомена на вашем сервере

#!/bin/bash
echo "Enter Subdomain You want to add (Eg:blog)"
read subdomain
echo "Enter your domain name (Eg:example.com)"
read domain
sudo chmod -R 755 /etc/apache2/
cd /etc/apache2/sites-available/
cat <<EOF >$subdomain.$domain.conf
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/$subdomain
    ServerAlias  $subdomain.$domain
    ServerName $subdomain.$domain

    <Directory /var/www/$subdomain>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Order allow,deny
# remove following four lines if http authentication not required or not set up#
        AuthType Basic 
        AuthName "Restricted Content"
        AuthUserFile /etc/apache2/.htpasswd
        Require valid-user
    </Directory>

 </VirtualHost>
EOF
mkdir /var/www/html/$subdomain
echo " Add your files to /var/www/html/$subdomain "
echo "enabling subdomain................"
sudo a2ensite $subdomain.$domain
echo "Reloading apache2 ................"
sudo service apache2 reload

Я думаю, что первая проблема заключалась в том, что мои правила страниц перенаправляли http на https, и я временно закомментировал части SSL в конфигурации Nginx.

После раскомментирования частей SSL, теперь просматриваем https://staging.example.com/ приводит к:

ошибка 400, неверный запрос

Требуемый сертификат SSL не был отправлен

это совершенно отдельная проблема, которую я сейчас решу.