Проблемы с настройкой новой службы whitelabel через CNAME - PullRequest
0 голосов
/ 17 октября 2018

У меня есть 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, чтобы это исправить?

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

1 Ответ

0 голосов
/ 17 октября 2018

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

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

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

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

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

Итак, чтобы заставить SASS работать в этом сценарии, вы можете изменить виртуальный хост по умолчанию на свое приложение илиВы можете добавить виртуальный хост с символом подстановки, например app. *.Он получит запрошенное имя хоста (в 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
...