Проблемы с настройкой новой службы whitelabel через CNAME

У меня есть SAAS, и я пытаюсь разрешить другим людям использовать мой SAAS в своем домене. Итак, предположим, что мой сайт — app.example.com (размещенный на Apache и с PHP в качестве языка бэкэнда), я хочу разрешить кому-то предлагать мой сайт, например, app.anotherwebsite.com.

Я уже создал CNAME на app.anotherwebsite.com:

app.anotherwebsite.com CNAME app.example.com.

Но если я захожу на app.anotherwebsite.com, он загружает страницу cPanel по умолчанию на app.anotherwebsite.com/cgi-sys/defaultwebpage.cgi.

Я уже попробовал много решений, предлагаемых в Интернете, но безуспешно. У кого-нибудь есть подсказки, как решить это? Нужно ли что-то делать на сервере example.com, чтобы это исправить?

Большое спасибо!

0

Решение

Когда вы создаете CNAME и попытаться сделать HTTP В ответ на запрос компьютер выполняет следующие действия:

1) Попробуйте найти IP-адрес, связанный с вашим именем хоста (в этом случае app.anotherwebsite.com) и CNAME это псевдоним другого имени хоста, который должен указывать на IP-адрес;

2) Когда у компьютера есть IP-адрес имени хоста, он подключается к порту 80 (в случае HTTP) или порт 443 (в случае HTTPS) и запросить страницу app.anotherwebsite.com;

3) Ваш HTTP сервер по IP-адресу будет искать в своей конфигурации виртуальный хост, который соответствует app.anotherwebsite.com. Если нет настроенного виртуального хоста, соответствующего запрошенному имени хоста, он будет обслуживать дефолт виртуальный хост В Apache, если нет явного объявленного виртуального хоста по умолчанию, первый настроенный виртуальный хост будет выбран по умолчанию.

В вашем случае ваш CPANEL твой дефолт виртуальный хост, и именно поэтому он отображает его.

Итак, чтобы ваш SASS работать по этому сценарию, вы можете изменить дефолт виртуальный хост к вашему приложению, или вы можете добавить виртуальный хост с подстановочным знаком, как приложение.*. Он получит запрошенное имя хоста (в PHP вы можете получить к нему доступ как $ _SERVER [«SERVER_NAME»]).

Ниже приведен пример кода:

<?php
echo "Hello!<br />\n";
echo "<br />\n";
echo "I'm seeing you're requesting the hostname " . $_SERVER["SERVER_NAME"] . "!\n";
?>

Ваш код может обрабатывать эту информацию и обслуживать вашего клиента на основе этой переменной.

РЕДАКТИРОВАТЬ:

Вы можете добавить виртуальный сервер в Apache, используя этот код:

<VirtualHost *:80>
ServerName app.example.com
ServerAlias app.*
DocumentRoot /var/www/SASS

<Directory /var/www/SASS>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/SASS-error.log
CustomLog ${APACHE_LOG_DIR}/SASS-access.log combined
</VirtualHost>

Этот виртуальный хост Apache добавляет новый сервер с именем app.example.com, и также будет соответствовать приложение.* Запросы.

Сервер будет указывать на / Var / WWW / SASS в качестве корневого каталога, ищите файл index.html или index.php (если в Apache включен PHP).

Разрешения на / Var / WWW / SASS предоставляется с тегом <Каталог> запретить автоматическое создание индексных файлов каталогов без индексного файла и разрешить использование .Htaccess.

Также был создан отдельный раздел error_log и access_log для регистрации запросов, соответствующих этой записи.

Чтобы проверить конфигурацию Apache и найти все ваши виртуальные хосты, используйте следующую команду:

apachectl -t -D DUMP_VHOSTS

Это произведет вывод как:

VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80                   is a NameVirtualHost
default server cpanel.example.com (/etc/httpd/conf/httpd.conf:994)
port 80 namevhost cpanel.example.com (/etc/httpd/conf/httpd.conf:994)
port 80 namevhost app.example.com (/etc/httpd/conf/httpd.conf:1044)
wild alias app.*
Syntax OK
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector