Arquivo de fevereiro \26\UTC 2012

Balanceamento de Carga com Mod JK no JBoss AS 7.1.1

Iniciamente devemos baixar o mod_jk, que é um módulo para balanceamento de carga da apache muito utilizado, pois possui grande diversidade de parâmetros podendo  se adequar a inúmeras situações. O mod_jk também é bem robusto e estável. Ele é customizado através de parâmetros salvos em arquivos “.conf”.

O mod_jk pode ser baixado na seguinte url: http://tomcat.apache.org/download-connectors.cgi, o arquivo tomcat-connectors-1.2.32-src.tar.gz, deverá ser baixado.

Logo em seguida devemos descompactar o arquivo, e compilar utilizando os comandos abaixo:

yum install httpd-devel
tar xvfz tomcat-connectors-1.2.32-src.tar.gz
cd tomcat-connectors-1.2.32-src/native/
./configure --with-apxs=yes
make
make install

Agora o mod_jk.so já está  no diretório modules do httpd :

ls /etc/httpd/modules

Crie em /etc/httpd/conf.d/ o arquivo mod-jk.conf e o configure-o como abaixo:

vim /etc/httpd/conf.d/mod-jk.conf

 

#### Mod JK 1.32 ####
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel debug
JkLogStampFormat  "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /application/* loadbalancer
JkMountFile conf/uriworkermap.properties
JkShmFile logs/jk.shm

<Location /jkstatus/>
JkMount status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>

Edite o arquivo httpd.conf :

vim /etc/httpd/conf/httpd.conf

E  adicione o arquivo de configuração do mod-jk.conf:

Include conf/mod-jk.conf

Crie o arquivo workers.properties. No arquivo worker estão as informações relacionadas aos hosts envolvidos e  parâmetros como factor de balanceamento, protocolos, configurações de cache entre outros.

vim /etc/httpd/conf/workers.properties

 

worker.list=instance01, instance02, loadbalancer

# Define instance01
worker.instance01.port=8009
worker.instance01.host=192.168.0.160
worker.instance01.type=ajp13
worker.instance01.ping_mode=A
worker.instance01.lbfactor=1

# Define instance02
worker.instance02.port=8009
worker.instance02.host=192.168.0.170
worker.instance02.type=ajp13
worker.instance02.ping_mode=A
worker.instance02.lbfactor=1

# Load-balancing behaviour
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=instance01,instance02
worker.loadbalancer.sticky_session=False
worker.list=loadbalancer

Crie o arquivo uriworkermap.properties, mapeando a url da sua aplicação conforme o exemplo abaixo:

/TestApp=loadbalancer
/TestApp/*=loadbalancer

No JBoss AS 7.1 edite o arquivo standalone.xml :

vim jboss-as-7.1.0.Final/standalone/configuration/standalone.xml

O “jvmRoute”  agora se chama instance-id (https://issues.jboss.org/browse/AS7-1365):

   <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" instance-id="instance01" native="false">

Adicione o protocolo AJP:

   <connector name="ajp" protocol="AJP/1.3" socket-binding="ajp" enabled="true" schema="http"/>

Em <socket-binding-group name=”standard-sockets” default-interface=”public” port-offset=”${jboss.socket.binding.port-offset:0}”>, adicione a port AJP configurada no arquivo workers.properties, que para instance01 é 8009.

<socket-binding name="ajp" port="8009"/>

Agora no outro servidor repita os procedimentos realizados em instance01 para instance02

Inicie as instâncias:

Instance01

./jboss-as-7.1.0.Final/bin/standalone.sh  -b 192.168.0.160 -bmanagement 192.168.0.160

Instance02

./jboss-as-7.1.0.Final2/bin/standalone.sh  -b 192.168.0.170 -bmanagement 192.168.0.170

Realize o deploy a aplicação no diretório: jboss-as-7.1.0.Final/standalone/deployments/  de instance01 e instance02

Acesse a url: http://ipservidor/TestApp , a sua aplicação deverá estar funcionando em conjunto com o Mod JK. Lembre-se que existem algumas configurações  que não foram abordadas nesse post.

Espero que tenha ajudado abraços!

, , ,

5 Comentários

JBoss Clustering – Parte 2

Basicamente a arquitetura do JBoss Clustering, está dividido em 2 partes: Smart Proxy Architecture e External Load Balancer. Para diferenciar podemos afirmar que o External Load Balancer é utilizado em aplicações web clusterizadas. enquando Smart Proxies são utilizados para todos os outros componentes clusterizados.

External load balancer

Não é requerido nenhum download para executar serviços HTTP em cluster, mas por uma questão lógica é necessária a configuração de um componente (hardware ou software) que encaminhe as requisições para outros nós em caso de falha. Atualmente existem alguns balanceadores muito difundidos na plataforma JBoss: Mod Cluster e Mod JK.

Smart proxies

Ao utilizar serviços no JBoss como JNDI, EJB, RMI, e JBoss remoting, a comunicação entre o cliente e o servidor não é peer-to-peer.  Quando um cliente chama um EJB,  um objeto smart proxy é localizado e baixado localmente. Em um ambiente não clusterizado, o smart proxy somente encaminha a chamada do cliente para o servidor, verificando alguns parâmetros e pegando os valores de retorno do EJB. Já em um ambiente clusterizado o smart proxy possui um interceptor que sabe como encaminhar chamadas para vários nós do cluster. O smart proxy está preparado para situações como failover. Caso um nó deixe de responder o proxy stub é atualizado com as utimas modificações na estrutura do cluster.

No próximo post, vamos abordar os principais arquivos da estrutura de cluster no JBoss.

Abraços.

, , , , , ,

Deixe um comentário

JBoss Clustering – Parte 1

Hoje vamos iniciar uma séries de posts sobre cluster no JBoss AS 5 e 6. JBoss clustering não é o produto de uma única biblioteca ou uma especificação, mas sim um conjunto de tecnologias. Um cluster de servidores de aplicação JBoss, é composto por várias instâncias ( nós ) executados simultâneamente visando alcançar escalabilidade e confiabilidade. Os nós podem estar na mesma máquina ou em máquinas diferentes. Para o cliente isso é  irrelevante porque o cluster aparece como uma única instância do servidor.

Os benefícios do cluster incluem:

  • Escalabilidade: É possível aumentar o poder de processamento do cluster, conforme o aumento da carga. Basicamente deve-se adicionar um novo nó para que o cluster passe a atender uma carga maior do que a prevista inicialmente.
  • Balanceamento de Carga: Consistem em distribuir a carga entre os nós participantes do cluster, evitando que somente um nó seja sobre-carregado ocasionando a sua queda.
  • Alta Disponibilidade: Os aplicativos executados no cluster, podem continuar disponíveis mesmo se um dos nós participantes falhar.

O JBoss AS já vem com suporte nativo a clusterização, localizado no profile  JBOSS_HOME/server/all . Para que o JBoss esteja em cluster os nós das instâncias devem ser agrupados em partições. Como dito anteriormente os nós podem estar na mesma máquina ou em máquinas diferente, mas é necessário que cada nó tenha endereços de IP diferentes.

Na figura a abaixo, você pode ver  um cluster composto de dois nós na mesma partição (DefaultPartition), cada um com seu endereço IP atribuído.

 

Você também pode ter múltiplas partições cluster rodando na mesma rede. A fim de diferenciá-los, cada grupo deve ter um nome individual e multicast endereço/porta.  Na imagem abaixo, temos um  cenário  com duas partições, ou seja, partition1 e partition2, cada um com dois membros do cluster e endereço de multicast distintos.
Veja o conceito de Multicast na Wikipedia. Para realização a comunicação entre os nós do cluster o JBoss utiliza uma biblioteca chamada JGroups.  Na inicialização do JBoss, o JGroups disponibiliza um conjunto de canais que têm a capacidade para descobrir  um ao outro de forma dinâmica através da troca de pacotes multicast. Todas as mensagens enviadas e recebidas  utilizando o canal tem que passar através do protocolo na stack. O conhecimento da stack não é necessário,  a menos que você precise ajustar os valores padrão ou realizar configurações extras.Acompanhem o próximo post.
Abraços.

, , , ,

Deixe um comentário

JBoss Certified Application Administrator – JBCAA

No utimo dia 23/02, realizei a prova de certificação JBCAA – JBoss Certified Application Administrator, e consegui ser aprovado. A prova possui 4 horas de duração, posso dizer que é tempo suficiente para realizar todas as tarefas propostas. Não é necessário ter realizado o treinamento JB336  e a prova é totalmente prática, baseando-se na performance de cada candidato. A Red Hat disponibiliza no site da certificação, o JBCAA Study Guide onde todo o conteúdo cobrado na prova é citado, além da possuir links para fontes adicionais de estudo. A prova é realizada na própria RedHat e ao final se aprovado é disponibilizado em seu site, a possibilidade de verificação do certificado obtido. No meu caso: https://www.redhat.com/wapps/training/certification/verify.html?certNumber=120-026-836 .

Boa Sorte a todos, uma pena que não terminei meus tópicos sobre a JBCAA aqui no blog, mas fica uma dica: Estudem o JBCAA Study Guide.

Abraços e Boa Sorte a Todos

2 Comentários

Balanceamento de Carga no JBoss AS 6.1 – Parte 2 ( Final )

Mod Cluster  é um balanceador de carga HTTP,  mas diferente do mod_jk, o mod_cluster se baseia na carga da aplicação para distribuir as requisições.Vamos utilizar o Mod Cluster 1.1.3.

O primeiro passo é baixar os binários para o sistema operacional que será utilizado. Para isso execute o comando abaixo:

   wget http://downloads.jboss.org/mod_cluster//1.1.3.Final/mod_cluster-1.1.3.Final-linux2-x64-ssl.tar.gz
   wget mod_cluster-1.1.3.Final-linux2-x64-ssl.tar.gz

Copie os arquivos  *.so, para o diretório /etc/httpd/modules :

  • mod_slotmem.so
  • mod_manager.so
  • mod_proxy_cluster.so
  • mod_advertise.so

Edite o arquivo httpd.conf, e insira as linhas abaixo:

LoadModule slotmem_module modules/mod_slotmem.so
LoadModule manager_module modules/mod_manager.so
LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
LoadModule advertise_module modules/mod_advertise.so
<VirtualHost *:80>
<Directory />
  Order deny,allow
  Allow from all
</Directory>
<Location /mod_cluster_manager>
  SetHandler mod_cluster-manager
  Order deny,allow
  Allow from all
</Location>
  KeepAliveTimeout 60
  MaxKeepAliveRequests 0
  ManagerBalancerName testcluster
  AdvertiseFrequency 5
</VirtualHost>

Comente a linha LoadModule proxy_balancer_module modules/mod_proxy_balancer.so ,  para não ocorrer um conflito com LoadModule proxy_cluster_module modules/mod_proxy_cluster.so.
Incie o apache e acesse a url : http://ip/mod_cluster_manager , você deverá ver algo semelhante a imagem abaixo:
  • Mod Cluster Manager
Agora no JBoss AS 6.1, crie um novo profile , para ser utilizado no balanceamento:
  cd /opt/jboss-6.1.0.Final/server/
  cp -Rap all instance01

Para habilitar o profile instance01, edite o arquivo :
    vim /opt/jboss-6.1.0.Final/server/instance01/deploy/mod_cluster.sar/META-INF/mod_cluster-jboss-beans.xml

Altere a seguinte linha conforme abaixo:
     <property name="advertise">${jboss.mod_cluster.advertise.enabled:true}</property></div>

Outra forma é acrecentando o  parâmetro a linha de execução:
   -Djboss.mod_cluster.advertise.enabled=true

Edite o arqui server.xml :
  vim jboss-6.1.0.Final/server/instance01/deploy/jbossweb.sar/server.xml

Adicione o parâmetro para o JvmRoute :
 <Engine name="jboss.web" defaultHost="localhost" jvmRoute="${jboss.jvmRoute}">

Para finalizar, crei uma nova instância:
   cp -Rap instance01 instance02

Agora inicie as duas instâncias, utilizando os comandos abaixo:

./run.sh -b 0.0.0.0 -g mycluster -c instance01 -Djboss.service.binding.set=ports-default -Djboss.jvmRoute="instance01"  -Djboss.messaging.ServerPeerID=1

 ./run.sh -b 0.0.0.0 -g mycluster -c instance02 -Djboss.service.binding.set=ports-01 -Djboss.jvmRoute="instance02"  -Djboss.messaging.ServerPeerID=2

Acesse novamente http://ip/mod_cluster_manager ,  você deverá ver as instâncias que acabamos de inciar:
  • Mod Cluster Manager / Instances
Baixe o Java Bundles do Mod Cluster. Vamos utilizar as aplicações de demo, para realizar alguns testes:
  wget http://downloads.jboss.org/mod_cluster//1.1.3.Final/mod_cluster-1.1.3.Final-bin.tar.gz</div>
  tar -xvzf mod_cluster-1.1.3.Final-bin.tar.gz

Faça  o deploy da aplicação load-demo.war , na pasta farm de instance01 para que seja replicado para instance02.
   cp demo/server/load-demo.war /opt/jboss-6.1.0.Final/server/instance01/farm/

Veja que a aplicação já está disponível e pronto para os testes:
  • Mod Cluster Manager / Instances / Deploy
Agore execute o client, e divirta-se a vontade.
cd demo/client
./run-demo.sh

Espero que tenha ajudado :)

, ,

1 Comentário

Utilizando LDAP Login Module no JBoss AS 7.1

Segundo a Wikipedia LDAP Lightweight Directory Access Protocol, ou LDAP, é um protocolo para atualizar e pesquisar diretórios rodando sobre TCP/IP.

Um servidor LDAP pode fornecer uma central de informações de diretório para:

• As credenciais do usuário (login e senha)
• Informações de diretório do usuário (como nomes e endereços de correio electrônico)
• Web diretórios

Vamos instalar o OpenLDAP e criar a nossa primeira estrutura de diretórios.

Instalando e Criando a Estrutura Inicial do OpenLDAP

Para instalar o LDAP no CentOS 6.2, execute o comando abaixo:

   yum install openldap openldap-servers openldap-devel compat-openldap php-ldap openldap-clients

O próximo passo é gerar a senha root do Distinguished Name (dn) :

  /usr/sbin/slappasswd

Anote o Hash retornado:

{SSHA}lQtV0mTn20N8PLuurHjoqgkXMPe0owG3

Copie o DB_CONFIG.example para /var/lib/ldap/ :

  cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

Edite o arquivo de configuração:

  vim /etc/openldap/ldap.conf

E deixe-o como abaixo:

 include /etc/openldap/schema/core.schema
 include /etc/openldap/schema/cosine.schema
 include /etc/openldap/schema/inetorgperson.schema
 include /etc/openldap/schema/nis.schema
 allow bind_v2
 pidfile /var/run/openldap/slapd.pid
 argsfile /var/run/openldap/slapd.args
 database bdb
 suffix "dc=example,dc=com"
 rootdn "cn=Manager,dc=example,dc=com"
 rootpw {SSHA}lQtV0mTn20N8PLuurHjoqgkXMPe0owG3
 directory /var/lib/ldap
 index objectClass eq,pres
 index ou,cn,mail,surname,givenname eq,pres,sub
 index uidNumber,gidNumber,loginShell eq,pres

Para iniciar o serviço execute:

  /etc/init.d/slapd start

Agora crie o arquivo LDIF, conforme a estrutura abaixo:

dn: dc=example,dc=com
objectclass: top
objectclass: dcObject
objectclass: organization
dc: example
o: MCC

dn: ou=People,dc=example,dc=com
objectclass: top
objectclass: organizationalUnit
ou: People

dn: uid=admin,ou=People,dc=example,dc=com
objectclass: top
objectclass: uidObject
objectclass: person
uid: admin
cn: Manager
sn: Manager
userPassword: secret

dn: ou=Roles,dc=example,dc=com
objectclass: top
objectclass: organizationalUnit
ou: Roles

dn: cn=Manager,ou=Roles,dc=example,dc=com
objectClass: top
objectClass: groupOfNames
cn: Manager
description: the Sample group
member: uid=admin,ou=People,dc=example,dc=com

Adicione usuário ao LDAP, utilizando o comando abaixo:

  ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f users.ldif

Enter LDAP Password:
adding new entry “dc=example,dc=com”
adding new entry “ou=People,dc=example,dc=com”
adding new entry “uid=admin,ou=People,dc=example,dc=com”
adding new entry “ou=Roles,dc=example,dc=com”
adding new entry “cn=Manager,ou=Roles,dc=example,dc=com”

Se ocorrer algum problema, sigam as dicas desse link: http://www.ezylinux.com/en/red-hat-6-how-to-fixes-ldapadd-ldap_bind-invalid-credentials-49/

Configurando o JBoss AS 7.1

O primeiro passo é adicionar o “my_ldap_security_domain”  no arquivo JBOSS_HOME/standalone/configuration/standalone.xml , como abaixo:

<security-domain name="my_ldap_security_domain">
  <authentication>
     <login-module code="LdapExtended" flag="required">
       <module-option name="java.naming.factory.initial"  value="com.sun.jndi.ldap.LdapCtxFactory"/>
       <module-option name="java.naming.provider.url" value="ldap://localhost:389"/>
       <module-option name="java.naming.security.authentication" value="simple"/>
       <module-option name="bindDN" value="uid=admin,ou=People,dc=example,dc=com"/>
       <module-option name="bindCredential" value="secret"/>
       <module-option name="baseCtxDN" value="ou=People,dc=example,dc=com"/>
       <module-option name="baseFilter" value="(uid={0})"/>
       <module-option name="rolesCtxDN" value="ou=Roles,dc=example,dc=com"/>
       <module-option name="roleFilter" value="(member={1})"/>
       <module-option name="roleAttributeID" value="cn"/>
       <module-option name="throwValidateError" value="true"/>
       <module-option name="searchScope" value="ONELEVEL_SCOPE"/>
     </login-module>
   </authentication>
</security-domain>

 

Adicione também  a categoria para o logging:

<logger category="org.jboss.security">
  <level name="TRACE"/>
</logger>

Agora crie uma aplicação para utilizar o dominio de segurança my_ldap_security_domain.

No jboss-web.xml , adicione o dominio de segurança:

<jboss-web>
    <security-domain>java:/jaas/my_ldap_security_domain</security-domain>
</jboss-web>
<pre>

E no web.xml,  as configurações como abaixo:

<security-constraint>
  <web-resource-collection>
    <web-resource-name>HtmlAuth</web-resource-name>
    <description>application security constraints
    </description>
    <url-pattern>/*</url-pattern>
    <http-method>GET</http-method>
    <http-method>POST</http-method>
  </web-resource-collection>
  <auth-constraint>
    <role-name>Manager</role-name>
  </auth-constraint>
</security-constraint>
<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>Test LDAP</realm-name>
</login-config>
<security-role>
    <role-name>Manager</role-name>
</security-role>

Faça o deploy e acesse a aplicação. Será solicitado usuário e senha, adicionados anteriormente ( users.ldif  –> admin / secret ) .

Vou deixar aqui a aplicação web criada para testar a autenticação no LDAP, o arquivo users.ldif e o standalone.xml.

Espero que tenha ajudado.
Abraços

Fonte: http://blog.javachap.com/index.php/installing-openldap-on-centos/

,

2 Comentários

Qual JBoss Escolher?

Se você está em dúvida entre o JBoss EAP da RedHat e JBoss AS da comunidade, assista o video abaixo:

Deixe um comentário

Café com Java 2012

Hoje pela manhã no auditório da Caelum na Vila Mariana, aconteceu o  3º Café com Java que  iniciou com o  assunto Classloaders da JVM ministrada pelo Adriano Almeida, foi bem legal e deu pra aprender bastante,  e ainda por cima com alguns comentários do Paulo Silveira da Caelum, que demonstrou conhecer a fundo Java…
As mini palestras continuaram com o Arthur Júnior, que demonstrou como trabalhar com o JRules. Depois Lucas Catón deu uma introdução ao Ruby on Rails, e isso foi bem divertido :)
Para encerrar o dia Eduardo Bregaida fechando com chave de ouro com Scrum Passos e Desafios. Realmente não conhecia muito o Scrum, deu para se ter uma boa ideia do que fazer ou não :P , no dia a dia utilizando essa metodologia.
Depois rolou uma confraternização bem legal com a galera, deu para conhecer muitas figuras do GUJ, relembramos alguns tópicos épicos de alguns trolls :P
Bom posso dizer que foi muito divertido, e que no próximo nos veremos lá :)

Abraços

Deixe um comentário

Configurando Proxy Reverso Utilizando Nginx 1.0 / JBoss AS 7.1

Ambiente:

  • JBoss AS 7.1 CR1
  • Nginx 1.0.11
  • RHEL 6.2

Segundo a Wikipedia, Nginx  ( pronuncia-se “engine-x” ) é um servidor e proxy reverso HTTP de alta performance, gratuito e livre, bem como um servidor proxy para IMAP/POP3. Foi criado pelo programador russo Igor Sysoev em 2005. Segundo pesquisa da Alexa, reportada pela W3Techs, o nginx é usado por 5.2% dos domínios, tornando-se o quarto servidor mais popular. [1] Outra pesquisa, realizada pela Netcraft em Julho de 2010, o nginx é usado em 5.21% dos domínios, tornando-se o quarto servidor web mais popular.

O JBoss AS 7 é a nova versão do servidor de aplicação open source mais utilizando no mundo. A nova versão é bem leve e modular, trazendo muitos novos recursos da especificação JavaEE6.

O nosso objetivo é realizar a configuração de um proxy reverso utilizando Boss AS 7.1  e Nginx 1.0.

Para instalar o Nginx 1.0 no RHEL 6.2, execute os comandos abaixo:

  mkdir /usr/local/src/nginx
  cd /usr/local/src/nginx
  wget http://nginx.org/download/nginx-1.0.11.tar.gz
  tar -zxvf nginx-1.0.11.tar.gz
  cd nginx-1.0.11
  ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/sbin --conf-path=/etc/nginx/nginx.conf
  make
  make install

Agora devemos criar o arquivo de inicialização do Nginx. Crie o arquivo nginx

   vim /etc/init.d/nginx

E adicione o conteúdo abaixo:

#!/bin/sh
#
# nginx - this script starts and stops the nginx daemin
#
# chkconfig:   - 85 15
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse #               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# pidfile:     /usr/local/nginx/logs/nginx.pid

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/local/sbin/nginx"
prog=$(basename $nginx)

NGINX_CONF_FILE="/etc/nginx/nginx.conf"

lockfile=/var/lock/subsys/nginx

start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}

stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}

restart() {
configtest || return $?
stop
start
}

reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}

force_reload() {
restart
}

configtest() {
$nginx -t -c $NGINX_CONF_FILE
}

rh_status() {
status $prog
}

rh_status_q() {
rh_status >/dev/null 2>&1
}

case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac

Configure a permisão e adicione-o como serviço.

  chmod +x /etc/init.d/nginx
  chkconfig nginx on

Inicie o Nginx e acesse a url  http://localhost ou http://ip , você deverá visualizar a página no Nginx abaixo:

Agora  instale o JBoss AS 7.1 . Para isso leia o post  Introdução ao JBoss AS 7.1 – Parte 1. Devemos realizar o deploy da  nossa aplicação no JBoss AS 7 e verificarmos o nome do contexto.  O contexto será utilizado nos arquivos de configuração do Nginx.

Agora edite o arquivo:

  vim /etc/nginx/nginx.conf

Abaixo da tag  http, descomente as configurações abaixo:

#http {

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

E abaixo da tag server insira as configurações abaixo:

#server {

listen       80;
server_name  localhost;

#charset koi8-r;

access_log /var/log/nginx/host.access.log main;
error_log  /var/log/nginx/host.error.log  debug;
# Obs: Criar o diretorio /var/log/nginx/

location / {
  root      /opt/jboss-as-7.1.0.CR1b/standalone/deployments/myapp_test.war;
  proxy_set_header X-Forwarded-Host $host;
  proxy_set_header X-Forwarded-Server $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_pass http://localhost:8080;
}
# }

A propriedade root (  root   /opt/jboss-as-7.1.0.CR1b/standalone/deployments/myapp_test.war  ) , indica o caminho real da nossa aplicação.

Agora reinicie o Nginx utilizando o comando abaixo:

  service nginx restart;

Retornará algo pareçido com:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Parando o nginx:                                           [  OK  ]
Iniciando o nginx:                                         [  OK  ]

Finalmente acesse a url da aplicação: http://localhost/myapp_test/ ou http://ip/myapp_test/ ,  o JBoss AS 7.1 já está trabalhando em conjunto com o Nginx. Veja as imagens abaixo de uma aplicação de teste funcionando perfeitamente.

Lembre-se que para um ambiente real de produção, teríamos que realizar muitas outras configurações.

Espero que tenha ajudado :)
Fonte: http://www.devmedia.com.br/post-21462-CentOS-5-Instalar-Nginx–um-servidor-web-de-alta-performance.html
http://wiki.nginx.org/Install

http://www.cyberciti.biz/faq/rhel-linux-install-nginx-as-reverse-proxy-load-balancer/

,

Deixe um comentário

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.