como podemos executar vários aplicativos com diferentes números de porta e domínio no apache

3

Eu tenho dois aplicativos em execução no meu servidor com domínios

 x.abc.com
 admin.x.abc.com

x.abc.com is running on port 80
admin.x.abc.com is running on port 8080

Eu consigo acessar o x.abc.com a partir do navegador, mas quando eu tento o admin.x.abc.com, ele está enviando solicitações apenas para o x.abc.com.

Qual é a maneira correta de configurar dois aplicativos da web diferentes com domínio diferente & porta em uma única máquina. Listados abaixo meus arquivos virtualhost para x.abc.com & admin.x.abc.com respectivamente

<VirtualHost *:80>
    ServerName www.x.abc.com
    ServerAlias x.abc.com
    RailsEnv test
    DocumentRoot /home/cp/cp/public
   <Directory /home/cp/cp/public/>
   </Directory>
   LogLevel warn
   ErrorLog /home/cp/cp/log/error.log
   CustomLog /home/cp/cp/access.log combined
   RewriteCond %{HTTP_HOST} ^admin.x.abc.com
   RewriteRule (.*) http://localhost:8080/$1 [R=301,L]
</VirtualHost>

<VirtualHost *:8080>
    ServerName www.admin.x.abc.com
    ServerAlias admin.x.abc.com
    RailsEnv test
    DocumentRoot /home/cp/cp_admin/public
   <Directory /home/cp/cp_admin/public/>
   </Directory>
   LogLevel warn
   ErrorLog /home/cp/cp_admin/log/error.log
   CustomLog /home/cp/cp_admin/access.log combined
 </VirtualHost>
    
por loganathan 20.04.2016 / 22:42

4 respostas

1

Sua configuração parece ser boa. Tente o seguinte:

  1. Você está usando domínios ou IP? Se não encontrar o host virtual ao qual você está se referindo, ele servirá o primeiro host virtual . Neste caso, www.x.abc.com. Isso é independente da porta.
  2. Tente adicionar a diretiva Listen 8080 . Você deve ter os dois Listen Listen 80 e Listen 8080.
por 21.04.2016 / 06:49
1

Você pode adicionar diretivas% mutliplasVirtualHost para uma única porta. O Apache os processará de acordo com os nomes, ou seja, ServerName e ServerAlias . Observe que o padrão do Apache é primeiro VirtualHost configurado, se nenhuma correspondência for encontrada. A configuração a seguir deve funcionar.

<VirtualHost *:80>
    ServerName www.admin.x.abc.com
    ServerAlias admin.x.abc.com
    ...
</VirtualHost>

<VirtualHost *:80>
    ServerName www.x.abc.com
    ServerAlias x.abc.com
    ...
</VirtualHost>
    
por 20.04.2016 / 22:49
0

Parece que o que pode estar acontecendo é que (1) todo o tráfego está sendo manipulado na porta 80 e, em seguida, (2) o ServerAlias x.abc.com está correspondendo (e sendo usado para) admin.x.abc.com . Observe, na documentação do Apache sobre a correspondência:

Name-based virtual hosts for the best-matching set of <virtualhost>s are processed in the order they appear in the configuration. The first matching ServerName or ServerAlias is used, with no different precedence for wildcards (nor for ServerName vs. ServerAlias).

    
por 21.04.2016 / 22:35
-1

Ele é resolvido depois de adicionar a linha abaixo em httpd.conf

NameVirtualHosts *:80
    
por 21.04.2016 / 19:07