Настройка двух экземпляров Symfony на одно доменное имя

У меня есть сервер разработки, на котором я разместил сайт, построенный на платформе Symfony (www.example.com).
Теперь для этого доменного имени «www.example.com» у нас есть все SSL-сертификаты и другие вещи, необходимые для веб-сайта.

У меня есть требование, где я должен развернуть еще один экземпляр Symfony, но без создания нового доменного имени. Как мне этого добиться?
Может ли он указывать на www.example.com/newInstance?

Могу ли я запустить два сайта на одном доменном имени?
www.example.com/oldInstance и www.example.com/newInstance

У меня меньше знаний о сетевом взаимодействии, поэтому ищу помощь по этому вопросу.

0

Решение

Если вы используете Apache в качестве веб-сервера, вы можете использовать alias указать каждый каталог

<VirtualHost *:80>
DocumentRoot "path/To/Your/DocumentRoot/oldInstance"ServerName www.example.com

<Directory "path/To/Your/DocumentRoot/oldInstance">
DirectoryIndex app.php
Options Indexes
AllowOverride All
Require all granted
</Directory>

Alias /newInstance "path/To/Your/DocumentRoot/newInstance"
<Directory "path/To/Your/DocumentRoot/newInstance">
DirectoryIndex app.php
Options Indexes
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

Если вы запросите http://example.com/ вы получите каталог OldInstance. Если вы запросите http://example.com/newInstance вы получите новый каталог.

Если вы хотите получить каталог oldInstance с помощью http://example.com/oldInstance вместо http://example.com тогда вы можете настроить другой псевдоним для этого:

Alias /oldInstance "path/To/Your/DocumentRoot/oldInstance"

Не забудьте проверить, если mod_alias включен в вашей конфигурации Apache.

LoadModule alias_module modules/mod_alias.so

Я надеюсь, что это поможет вам.

2

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

Если вы используете Nginx + Apache и хотите указать Apache для разных каталогов в соответствии с путем, вы можете достичь этого с помощью следующей конфигурации:

#Nginx
location /newInstance {
proxy_set_header X-Real-IP  $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host YOUR_HOST_FOR_APACHE_HERE;
proxy_pass http://127.0.0.1:8080;
}

location /oldInstance {
proxy_set_header X-Real-IP  $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host ANOTHER_HOST_FOR_APACHE_HERE;
proxy_pass http://127.0.0.1:8080;
}

И установите конфигурацию VirtualHost для Apache:

#Apache
<VirtualHost *:8080>
DocumentRoot    "/var/www/newInstance"ServerName      YOUR_HOST_FOR_APACHE_HERE
</VirtualHost>

<VirtualHost *:8080>
DocumentRoot    "/var/www/oldInstance"ServerName      ANOTHER_HOST_FOR_APACHE_HERE
</VirtualHost>

Если у вас есть только Apache в вашей конфигурации, вы можете настроить псевдонимы, как предложено @Hokusai:

<VirtualHost *:80>
DocumentRoot "path/To/Your/DocumentRoot/oldInstance"ServerName www.example.com

<Directory "path/To/Your/DocumentRoot/oldInstance">
DirectoryIndex app.php
Options Indexes
AllowOverride All
Require all granted
</Directory>

Alias /newInstance "path/To/Your/DocumentRoot/newInstance"
<Directory "path/To/Your/DocumentRoot/newInstance">
DirectoryIndex app.php
Options Indexes
AllowOverride All
Require all granted
</Directory>
</VirtualHost>

Также вы можете использовать свой фронт-контроллер (например, app.php) управлять всем трафиком и импортировать разные файлы в зависимости от имени хоста.

1

По вопросам рекламы [email protected]