Encaminhar code.domain.com para servidor específico?

0

Eu tenho o problema clássico de vários servidores 1 IP, exceto que estou usando o ESXi (s1) para hospedar as VMs do servidor (VM1, VM2). O que estou tentando realizar é isto:

Quando alguém vai para example.com , eles recebem S1-VM1 , que hospeda meu blog, site e todo esse jazz.

mas quando eles vão para code.example.com eles recebem S1-VM2 que hospedará APENAS hot gitlab para o meu código.

Variáveis:

  1. VM1 é baseada em CentOS, VM2 é Ubuntu Server
  2. Meu roteador com o Ext IP está lidando com o DHCP

Por favor, deixe-me saber onde eu posso ler / ir / para começar com isso como eu estou absolutamente inseguro de onde começar a fazer algo assim. Isso poderia ser tão simples quanto um proxy reverso com a implementação do Apache no CentOS? Talvez algo semelhante a This ?

UPDATE: Então eu tenho isso parcialmente descoberto. A configuração abaixo parece redirecionar todo o tráfego de example.com para https://sub.example.com . Se alguém estiver disposto a analisar isso e me dar algum feedback sobre o motivo pelo qual isso pode estar acontecendo e sugerir um ajuste, eu ficaria feliz porque são as férias e eu tenho todo o tempo do mundo para jogar com meus servidores.

<VirtualHost 192.0.2.1:80>
  ServerName sub.example.com
  Redirect permanent / http://sub.example.com/
</VirtualHost>
<VirtualHost 192.0.2.1:443>
  ServerName sub.example.com
  ErrorLog logs/sub.example.com-error_log
  CustomLog logs/sub.example.com-access_log combined
  SSLEngine On
  SSLCertificateFile /etc/httpd/conf.d/ssl/server.crt
  SSLCertificateKeyFile /etc/httpd/conf.d/ssl/server.key
  #SSLCACertificateFile /etc/httpd/conf.d/ssl/rapidssl.crt
  ProxyRequests Off
  ProxyPreserveHost On
  ProxyPass / http://192.168.1.252/
  ProxyPassReverse / http://192.168.1.252/
</VirtualHost>

** UPDATE2: ** Então, os erros que estou tendo neste momento estão relacionados ao SSL. Eu alterei a configuração acima para o seguinte:

<VirtualHost 192.0.2.1:80>
  ServerName sub.example.com
  Redirect permanent / http://sub.example.com/
  ProxyPass / http://192.168.1.252
  ProxyPassReverse / http://192.168.1.252
</VirtualHost>
<VirtualHost 192.168.1.252:443>
  ServerName sub.example.com
  ErrorLog logs/sub.example.com-error_log
  CustomLog logs/sub.example.com-access_log combined
  SSLEngine off
  SSLCertificateFile /etc/httpd/conf.d/ssl/server.crt
  SSLCertificateKeyFile /etc/httpd/conf.d/ssl/server.key
  #SSLCACertificateFile /etc/httpd/conf.d/ssl/rapidssl.crt
  ProxyRequests Off
  ProxyPreserveHost On
  ProxyPass / http://192.168.1.252/
  ProxyPassReverse / http://192.168.1.252/
</VirtualHost>

Eu fiz isso com base em um palpite dos registros que declararam, sem termos específicos, não houve correspondência da chave RSA ou algo assim. com a configuração acima do servidor voltado ao público está redirecionando as solicitações para sub.example.com para o site HTTP dos servidores internos. mas agora que jacks tudo mais por exemplo quando eu faço algo como example.com/blog há um erro de proxy:

Proxy Error

The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /blog.

Reason: DNS lookup failure for: 192.168.1.252blog 

Alguma opinião?

    
por user502301 10.12.2015 / 23:29

1 resposta

0

Então, para isso, você vai querer usar um proxy reverso. Um proxy reverso permite acessar vários servidores atrás de um IP externo. Certifique-se de que seu registro CNAME esteja configurado corretamente com o host como code e valor como example.com .

Eu segui guia, vagamente. Meu sistema operacional era o CentOS 7.1.

Primeiro, verifique se o Apache / httpd está instalado. Se já estiver, você pode pular este passo.

sudo yum install httpd

Faça a configuração básica do seu servidor principal e continue a permitir o acesso aos seus outros servidores. Precisamos editar o arquivo httpd.conf para fazer os redirecionamentos:

vi /etc/httpd/conf/httpd.conf

Adicione isto para fazer o trabalho real:

<VirtualHost *:80>
        ServerName code.example.com
        ProxyPass / http://S1-VM2:80/
        ProxyPassReverse / http://S1-VM2:80/
</VirtualHost>

Em seguida, precisamos reiniciar o serviço Apache: service httpd restart

Por último, você precisa configurar o seu servidor web Ubuntu. Para o ServerName em /etc/apache2/sites-available/default put code.example.com , reinicie o servidor da Web executando service apache2 restart .

    
por 11.12.2015 / 07:27