Pergunta

O que é a forma preferida de implantar um compojure / aplicações Sinatra? Eu tenho vários sites em execução no host, então eu não posso correr cais / vira-lata na porta 80. Como devo lidar com vários sites / aplicativos em execução ao mesmo anfitrião?

Foi útil?

Solução

Use um servidor web, como Apache que é executado na porta 80 e utilização hosts virtuais para direcionar o tráfego para o servidor aplicativo certo. Então, basicamente, você deve executar cada servidor de aplicativos (cais / vira-lata, etc.) em uma porta diferente e, em seguida, em cada host virtual teria uma configuração diferente para usar algo como mod procuração para encaminhar o tráfego para o servidor de aplicativos. Você pode usar um servidor web diferente, como lighttpd ou nginx . Para o aplicativo Sinatra você também pode olhar para Phusion Passenger, aka trilhos modernos, aka mod rack, que teoricamente funciona com qualquer app rack, embora eu só usei isso com Rails.

Se você olhar para ele um pouco mais você vai descobrir que existem vários esquemas para encaminhar o tráfego para o servidor de aplicativo a partir de um servidor web, mas o mecanismo básico para fazer este tipo de coisa sempre se resume a ter um servidor web que escuta na porta 80 que usa baseados em nome hosts virtuais para em seguida, encaminhar o tráfego para o aplicativo apropriado.

Outras dicas

Eu venho fazendo esse tipo de coisa com vários servidores independentes (por exemplo, AllegroServe) durante anos. Eu encontrei a melhor abordagem a ser:

  • Executar cada servidor em uma porta diferente, não-privilegiado (como 8080)
  • Executar pound (ou Nginx etc.) em 80, configurado para mapear os pedidos para cada aplicação.

Pound é grande, e as configurações acabam muito simples (ao contrário Nginx). Ele também irá fazer SSL frente e HTTP sanitização para você, o que leva a carga fora sua aplicação.

Use passageiro! http://modrails.com - é um plugin para o apache e nginx que permite (muito) facilmente executar um rubi aplicativo como um host virtual

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top