TorqueBox

Configurando Apache Web Server e Mod Proxy com TorqueBox 2.x

Postado em

Olá amigos,

Continuando o post anterior em que nós aprendemos a instalar o TorqueBox e a criar uma aplicação utilizando Ruby on Rails, hoje vamos aprender como deployar a aplicação criada nesse post no context root “/” e como integrar tudo isso ao Apache Web Server tornando o nosso ambiente  um pouco mais profissional.

Atualmente a nós estamos acessando a nossa aplicação utilizando o seguinte formato: http://ip(servidor):porta/contexto/recurso

Então o objetivo aqui é configurar a nossa aplicação para que seja acessada da seguinte form: http://ip(servidor)/recurso

No post anterior nós realizamos o deploy da seguinte maneira:

jruby -S rake torquebox:deploy['/store']

Então realize o undeploy da aplicação de maneira similar:

jruby -S rake torquebox:undeploy['/store']

Por default torquebox:deploy já publica a aplicação no context root ou seja respondendo no “/”. Então o primeiro passo é realizar o deploy da aplicação sem utilizar o contexto. Veja:

jruby -S rake torquebox:deploy

Agora a nossa aplicação está respondendo no context root: http://ip(servidor):porta/recurso .

Pronto! Nos livramos do contexto agora só falta a porta.

Desde de o Apache 1.3 existe suporte opcional para o módulo chamado mod_proxy.so. Esse módulo  configura o Apache para agir como um servidor proxy, transmitindo as requisições para outras aplicações web como JBoss, Jetty e Tomcat.

Para utilizar o  mod_proxy é bem simples. Verifique se o módulo já está configurado no httpd.conf:

LoadModule proxy_module modules/mod_proxy.so

Ainda no httpd.conf , adicione as seguintes configurações:

#192.168.0.158 --> Ip do Servidor TorqueBox no Windows
ProxyPass / http://192.168.0.158:8080/
ProxyPassReverse / http://192.168.0.158:8080/

Reinicie o Apache e tente acessar a aplicação apenas com o IP ou DNS do servidor Linux em que o Apache o Mod Proxy estão instalados. Não se esqueça de iniciar o TorqueBox com a opção -Djboss.bind.address=0.0.0.0 , caso contrário o Apache não conseguirá se comunicar com o JBoss.

Agora nossa aplicação está respondendo no seguinte formato:  http://ip(servidor)/recurso

Para brincar um pouquinho o servidor de proxy Apache está no CentOS 6.3 e o TorqueBox está no Windows 7. Pelos meus testes tudo funcionou corretamente.

Espero que tenha ajudado.

Abraços

Introdução ao TorqueBox 2.x

Postado em Atualizado em

Olá amigos 🙂

Hoje vamos falar de um assunto que é novo para mim. Vamos aprender a configurar um ambiente de nível “enterprise” para Ruby on Rails utilizando o projeto TorqueBox.  A idéia do projeto Torquebox é reaproveitar todos os recursos fornecidos pelo servidor de aplicação JBoss permitindo o deploy de aplicações criadas em Ruby on Rails.

Como pré-requisito é necessário que você tenha instalado o JDK 1.6 com as variáveis de ambiente já configuradas. Agora vá até a página do projeto TorqueBox e faça o do arquivo torquebox-dist-bin.zip.

Descompacte o TorqueBox em um diretório de sua preferência. Veja abaixo:

Note que no pacorte do TorqueBox já encontramos o JRuby e JBoss. Agora devemos configurar as variáveis de ambiente conforme abaixo:

TORQUEBOX_HOME = C:\Desenvolvimento\torquebox-2.x.incremental.1208

JBOSS_HOME = C:\Desenvolvimento\torquebox-2.x.incremental.1208\jboss

JRUBY_HOME = C:\Desenvolvimento\torquebox-2.x.incremental.1208\jruby

Não se esqueça de adicionar as variáveis ao path.

JBOSS_HOME%\bin;%JRUBY_HOME%\bin;

Agora que já estamos com o nosso ambiente basicamente configurado o próximo passo é instalar o rails. Para isso execute:

jruby -S gem install rails

O TorqueBox possui um pacote que inclui tarefas Rake que auxiliam no deployment e undeployment a partir de uma instância do Servidor TorqueBox. Execute:

jruby -S gem install torquebox-rake-support

Agora já estamos pronto para criar a  estrutura do nosso projeto de teste. Vamos chamá-la de store. Para criar a aplicação execute:

jruby -S rails new store

Veja abaixo a estrutura do projeto:

Agora vamos configurar o banco de dados que será utilizado. Existem várias maneiras de conectar uma aplicação Ruby On Rails a um banco de dados. Podemos instalar native adapters para bancos de dados como MySQL ou Postgres. No entanto, para usuários Java, a abordagem mais simples é instalar o adapter JDBC que permite a aplicação Ruby on Rails acessar servidores de banco de dados que fornecem drivers compatíveis com JDBC 3.0. Para nosso exemplo, vamos utilizar um adaptador JDBC MySQL. Execute:

jruby -S gem install activerecord-jdbcmysql-adapter

Edite o arquivo Rakefile em C:\Desenvolvimento\torquebox-2.x.incremental.1208\techstore e adicione a seguinte configuração na primeira linha do arquivo após os comentários.

require ‘torquebox-rake-support’

Agora no mesmo diretório edite o arquivo Gemfile e adicione a linha abaixo:

gem ‘activerecord-jdbcmysql-adapter’

O próximo passe é realizar a configuração para a conexão com o MySQL. Edite o arquivo database.yml.

C:\Desenvolvimento\torquebox-2.x.incremental.1208\techstore\config\database.yml

Deixe a configurações como abaixo:

Agora devemos executar o comando jruby -S rake db:create para que os bancos de dados sejam criados.

Vamos criar uma pequena aplicação de exemplo utilizando o famoso scaffold. Para isso execute o comando abaixo dentro do diretório C:\Desenvolvimento\torquebox-2.x.incremental.1208\techstore:

jruby -S rails generate scaffold Voucher title:string description:text price:decimal

O scaffold criou uma pequena aplicação utilizando os princípios do MVC que armazena os dados na tabela vouchers.

Para que as tabelas referentes aos Models sejam criadas execute o comando jruby -S rake db:migrate.

Finalmente podemos realizar o deploy da nossa aplicação. Execute jruby -S rake torquebox:deploy[‘/store’]

Inicie o JBoss. Para isso execute C:\Desenvolvimento\torquebox-2.x.incremental.1208\jboss\bin\standalone.bat

Agora a nossa aplicação store e seus vouchers deverão estar respondendo na seguinte url: http://localhost:8080/store/vouchers

Pronto. Já podemos utilizar toda a simplicidade da plataform Ruby on Rails com o poder do servidor de aplicação JBoss AS 7.

Ps: Provavelmente você precisará instalar alguns gems como por exemplo jruby-openssl para isso execute: jruby -S gem install jruby-openssl. Eu precisei instalar pelo menos umas seis gems para que tudo funcionasse corretamente.

Fonte:

Espero que tenha ajudado.

Esse post foi para o meu camarada Angelo Belchior.

Abraços