Чтобы указать два разных домена на одно и то же веб-приложение (Apache)

У меня есть приложение: назовем его Микки.

Чтобы получить доступ к приложению, я настроил vhost в apache, так что при доступе к домену третьего уровня mickey .example.com обслуживается приложение Mickey.

Это работает.

И это его конфигурация:

<VirtualHost *:80>
        ServerName mickey.example.com
        # ServerAlias Not required

        ServerAdmin my@email.com
        DocumentRoot /var/www/mickey.example.com/public_html

        ErrorLog /var/www/mickey.example.com/log/error.log
        CustomLog /var/www/mickey.example.com/log/access.log combined

        <Directory /var/www/mickey.example.com>
                AllowOverride All
        </Directory>

        RewriteEngine on
        RewriteCond %{SERVER_NAME} =mickey.example.com
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

Теперь я хочу настроить другой домен: mickey.example2.com

Конечный результат должен быть что приложение Mickey должно обслуживаться при доступе с mickey.example.com и при доступе с mickey.example2.com.

Итак, в основном у меня:

  1. Тот же домен третьего уровня
  2. То же приложение
  3. ДВА РАЗНЫХ домена второго уровня.

ЧТО Я ДЕЛАТЬ

Первая попытка: настроить псевдоним DNS CNAME

В качестве первой попытки я просто добавил новую запись DNS в домен example2.com который указывает на mickey.example.com:

DNS для домена example2.com:[12218 visibleType: CNAME

  • Хост: Mickey
  • Указывает на: mickey.example.com
  • Это не сработало : после распространения DNS, когда я обращался к домену mickey.example.com, сервер перенаправил меня на домен по умолчанию, настроенный в Apache (то есть, скажем, defaultexample.com)

    Вторая попытка

    Поскольку я не сразу указал, что это был сервер, перенаправлен на defaultexample.com, я изменил DNS-запись с CNAME на A :

    DNS для домена example2.com:[12225 impressionType: A

  • Host: Mickey
  • ] Указывает на: 123.456.789.012
  • Где 123.456.789.012 - это IP-адрес сервера, который обслуживает приложение Микки.

    Это не сработало: сервер продолжал перенаправлять меня на defaultexample.com.

    При этом Я догадался, что это сервер, который меня перенаправил, поэтому я начал копаться в конфигурации Vhost (оставив запись DNS как A , и это A , пока я написание этого вопроса).

    Третья попытка: ServerAlias ​​ в Apache

    В качестве первой попытки я попытался добавить ServerAlias ​​ к виртуальному хосту [1112 4040], который обслуживает mickey.example.com:

    <VirtualHost *:80>
            ServerName mickey.example.com
    +       ServerAlias mickey.example2.com
    
            ServerAdmin mu@email.com
            DocumentRoot /var/www/mickey.example.com/public_html
    
            ErrorLog /var/www/mickey.example.com/log/error.log
            CustomLog /var/www/mickey.example.com/log/access.log combined
    
            <Directory /var/www/mickey.example.com>
                    AllowOverride All
            </Directory>
    
            RewriteEngine on
            RewriteCond %{SERVER_NAME} =mickey.example.com
            RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
    </VirtualHost>
    

    Это не сработало: Apache продолжает перенаправлять меня на defaultdomain.com.

    Четвертая попытка: выделенный vhost

    На этом этапе я создал выделенный vhost назвав его mickey.example2.com.conf :

    <VirtualHost *:80>
    -        ServerName mickey.example.com
    +        ServerName mickey.example2.com
            DocumentRoot /var/www/mickey.example.com/public_html
    
            ErrorLog /var/www/mickey.example.com/log/error.log
            CustomLog /var/www/mickey.example.com/log/access.log combined
    
            <Directory /var/www/mickey.example.com>
                    AllowOverride All
            </Directory>
    
            RewriteEngine on
    -        RewriteCond %{SERVER_NAME} =mickey.example.com
    +        RewriteCond %{SERVER_NAME} =mickey.example2.com
            RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
    </VirtualHost>
    

    Затем я включил новый vhost в Apache и перезагрузил его:

    sudo a2ensite mickey.example2.com.conf
    sudo systemctl reload apache2
    

    Ничего: доступ к mickey.example2.com продолжает перенаправлять меня на defaultdomain.com

    Что теперь делать?

    На данный момент я не знаю, что делать дальше: я перепробовал все, что, по моему мнению, должно было сработать, но это нет.

    Есть предложения?

    Как было сказано, мне нужно использовать одно и то же приложение из mickey.example.com и с mickey.example2.com.

    Есть идеи, как это сделать?

    1
    задан 5 June 2020 в 17:07
    1 ответ

    Наконец-то я решил!

    После многих часов тестов и копаний на сервере я обнаружил, что проблема связана с цифровым сертификатом Let's Encrypt: после нового вызова и новой проверки домена третьего уровня теперь все работает как положено!

    0
    ответ дан 5 June 2020 в 16:20

    Теги

    Похожие вопросы