У меня есть случай, когда VPS работает на сервере Apache в главной папке www, нет vhosts. Теперь мне нужно разместить несколько vhosts, но мне нужно получить доступ к этому конкретному веб-приложению с основного IP-адреса. Другой vhost будет иметь другое доменное имя. Чтобы более подробно объяснить мою проблему, вот фиктивный пример

У меня есть сервер с IP X и запущенным приложением A без использования vhost. Некоторые приложения используют IP X для доступа к приложению А. Затем возникает необходимость добавить WebApp B и C с доменными именами app-b.com и app-c.com . Теперь мне нужно добавить два приложения, не мешая приложениям, которые обращаются к приложению A через IP X. Окончательное решение будет состоять в том, чтобы переместить приложение A в vhost и обновить приложения для доступа к нему через app-a.com , но это займет много времени. , поэтому мне нужно краткосрочное решение.

Любой указатель или помощь приветствуется

1 ответ1

2

Если у вас возникли проблемы с официальной документацией, давайте начнем с нуля:

Во-первых, откройте существующую конфигурацию сайта для приложения A, обычно в /etc/apache2/sites-enabled . Поскольку вы хотите получить доступ к Приложению A только с IP-адресом, откройте конфигурацию сайта и отредактируйте ее, чтобы она выглядела следующим образом:

<VirtualHost 192.168.1.1>
    DocumentRoot "/www/app-a"
    ServerName 192.168.1.1
    ServerAlias 192.*
    ServerAlias *:*

    # Other directives here
</VirtualHost>

Затем создайте новую конфигурацию в папке, доступной для сайтов, обычно это /etc/apache2/sites-available например:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/app-b.com.conf

Далее откройте его:

sudo vim /etc/apache2/sites-available/app-b.com.conf

То, что внутри, должно быть очень похоже на то, что находится в официальной документации. Отредактируйте его так:

<VirtualHost *:80>
    DocumentRoot "/www/app-b"
    ServerName www.app-b.com

    # Other directives here
</VirtualHost>

Наконец, включите ваш сайт с помощью:

sudo a2ensite app-b.conf
sudo service apache2 restart

Повторите для приложения C.

В будущем, чтобы переместить приложение A на собственный vhost, измените

<VirtualHost 192.168.1.1>
    DocumentRoot "/www/app-a"
    ServerName 192.168.1.1
    ServerAlias 192.*
    ServerAlias *:*

    # Other directives here
</VirtualHost>

в

<VirtualHost *:80>
    DocumentRoot "/www/app-a"
    ServerName www.app-a.com

    # Other directives here
</VirtualHost>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .