TorqueBox
Configurando Apache Web Server e Mod Proxy com TorqueBox 2.x
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
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