Servindo Meteor no domínio principal e Apache no subdomínio de forma independente

1

Estou executando um servidor Meteor no meu servidor Ubuntu. Mas problemas surgem quando tento ter o Apache atendendo a um subdomínio no mesmo servidor.

main.domain.com - > Meteoro

sub.domain.com - > Apache

O Meteor está rodando na porta 80. Eu já tentei ter o Meteor rodando na porta 3000 e servido em proxy reverso com Nginx, mas o Meteor começou a se comportar mal (problemas com tcp / websockets) e eu passei muitas noites e noites para persistir por mim mesmo.

Então eu reverti minha configuração para ter o Meteor como o servidor principal (o aplicativo funciona bem) e depois instalar o Apache para servir meu subdomínio. O problema é que eu não posso ter o Apache na porta 80 também, já que parece invadir meu servidor Meteor.

Por experiência, eu tento ficar longe do Meteor com proxy reverso, mas não tenho conhecimento suficiente para fazer com que o Apache se dedique ao meu subdomínio e sem sobrecarregar "tudo o que é a porta 80" no meu servidor.

Como posso ter os dois serviços se comportando uns com os outros nesse tipo de configuração?

Atualização:

Seguindo a sugestão do EasyEcho, passei a usar dois endereços IP diferentes.

Que seja conhecido, estou usando um servidor de nuvem "Next Generation" na Rackspace (executando o último Ubuntu 12.04 LTS com o kernel mais recente do grub2 / atualizado.

A Rackspace não permite IPs adicionais em seus Cloud Servers ( source ). .

The next generation Cloud Servers platform powered by OpenStack does not yet support additional IP addresses.

... mas você recebe 1 IPv4 e 1 IPv6 ao criar um servidor. Então, por que não entrar no trem do IPv6? Mais fácil falar do que fazer.

Então aqui está o meu "novo problema": Depois de mapear meu subdomínio para o endereço IPv6 (AAAA no DNS) e configurar o Apache para ouvir o endereço IPv6, obtenho o seguinte comportamento:

Do meu desktop remoto do servidor (usando o freeNX), no Firefox

  • link
  • link
  • link
  • link

Da minha estação de trabalho (Win7 x64), também no Firefox

  • link
  • link
  • link
  • link

Aqui está minha configuração do Apache:

/etc/apache2/ports.conf

NameVirtualHost [my:ip:v6:address]:80
Listen [my:ip:v6:address]:80

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

/ etc / apache2 / sites-enabled / default

<VirtualHost [my:ip:v6:address]:80>
    ServerAdmin webmaster@localhost

    ServerName sub.domain.com

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Isso pode ser corrigido para funcionar como "anunciado"?

    
por kinologik 05.09.2012 / 22:16

2 respostas

1

Se possível, atribua vários IPs à máquina e configure o Meteor para ligar a 80 em um dos ips e o Apache para ligar à porta 80 no outro. Veja a Documentação do Apache e Meteor Demonstração que parece cobrir o que você está procurando.

Atualização:

Bem, isso é muita informação nova ...

Você provavelmente não pode se conectar ao ip / host IPv6 de sua estação de trabalho porque está no IPv4.

    
por 05.09.2012 / 22:25
1

Hmm, você não deve precisar de vários endereços IP para fazer isso.

Ouça em 0.0.0.0:80 com algo leve como NginX ou HAProxy (o escalonamento não será um problema) e, em seguida, inverta o tráfego do proxy até a camada relevante abaixo, executando em portas separadas (escute no host local, não 0.0.0.0).

Assim, a solicitação é enviada para apache.your_domain.com e o HAProxy roteia internamente o tráfego para o Apache sendo executado em outra porta.

A solicitação vem em meteor.your_domain.com e o HAProxy roteia internamente o tráfego até o Node.js ...

    
por 12.06.2014 / 13:05