Configurando Proxy Reverso Utilizando Nginx 1.0 / JBoss AS 7.1

Postado em Atualizado em

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 uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s