msgbartop
Tips de administración de servidores y herramientas Web
msgbarbottom

Instalación de Nginx como servidor estático

septiembre 27, 2010 Publicado en Admin-tips, Configuración, Escalabilidad, InfraEstructura con 31 Comentarios


En una entrada anterior hablamos sobre los origines y las bondades que tiene el servidor http Nginx, en esta ocasión vamos a instalarlo y a realizar una configuración basica del mismo.

Lo primero que debemos hacer es descargar la ultima versión del servidor Nginx aqui, y la ultima version de pcre(Perl Compatible Regular Expressions) aqui. Para este tutorial vamos a trabajar con las versiónes nginx-0.8.51.tar.gz y pcre-8.10.tar.gz. Adicionalmente vamos a instalar un modulo para nginx que nos permite manejar las cabeceras eTag, desarrollado por kkung, el cual se puede descargar aqui.

Instalando PCRE

Descomprimimos el paquete pcre-8.10.tar.gz e ingresamos a la carpeta generada, ejecutamos los comandos configure, make y make install

tar -zxvf pcre-8.10.tar.gz
cd pcre-8.10
./configure
make
make install

Si todo sale bien, ya tendremos instalado el paquete pcre en  nuestro sistema y continuaremos instalando el servidor Nginx.

Instalando Nginx

Lo primero que debemos hacer es descomprimir el modulo de eTags para archivos estaticos y renombrar la carpeta por facilidad, simplemente con:

tar -zxvf kkung-nginx-static-etags-s20090317-3-gce0fdd4.tar.gz
mv kkung-nginx-static-etags-s20090317-3-gce0fdd4 nginx-static-etags

Descomprimimos el paquete nginx-0.8.51.tar.gz e ingresamos a la carpeta generada. Ejecutamos el comando configure incluyendo el paquete que acabamos de descomprimir, asi como la opción que nos permite tener estadisticas del servidor (server-status en apache), seguido de make y make install

tar -zxvf nginx-0.8.51.tar.gz
cd nginx-0.8.51
./configure –user=userowner –group=groupowner –with-http_stub_status_module –add-module=/instaladores/nginx/static-etags
make
make install

Nota: En caso en que al ejeuctar el comando “make” opbtengamos el siguiente error, lo unico que debemos hacer es entrar al archivo /instaladores/nginx-static-etags/ngx_http_static_etags_module.c y generar una linea vacia al final.

/instaladores/nginx-static-etags/ngx_http_static_etags_module.c:168:2: no newline at end of file
make[1]: *** [objs/addon/nginx-static-etags/ngx_http_static_etags_module.o] Error 1
make[1]: Leaving directory `/instaladores/nginx-0.8.51′
make: *** [build] Error 2

Hasta aqui ya tenemos instalado nuestro servidor nginx para HTTP el cual se encuentra en /usr/local/nginx, ahora vamos a realizar unas tareas administrativas para que sea mas sencillo configurar y trabajar con nginx.

Primero que todo vamos a configurar el sistema para que podamos acceder a la configuración del servidor nginx en /etc/nginx, para esto necesitamos crear dos links simbólicos de la siguiente manera:

ln -s /usr/local/nginx/conf/ /etc/nginx
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

lo segundo, es que vamos a crear un script por medio del cual podemos subir y bajar el servidor nginx como cualquier otro servicio de linux, y lo alojaremos en /etc/init.d/, aca les dejo el script para que los descarguen nginx script inicio

Por último modificaremos el archivo de configuración para colocar un sitio de ejemplo, para esto debemos modificar el archivo /etc/nginx/nginx.conf para que quede de la siguiente manera:

user  userowner groupowner;
worker_processes  1;

events {
worker_connections  512;
}

http {

include       mime.types;
default_type  application/octet-stream;

log_format  main  ‘$remote_addr – $host $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” “$http_user_agent” “$gzip_ratio” “$http_x_forwarded_for” “$upstream_status”‘;
server {
listen       80;
server_name  test.local;

access_log  /var/log/access.log  main;
# [ debug | info | notice | warn | error | crit ]
error_log   /var/log/error.log  debug;

etags on;
etag_hash on;
etag_hash_method md5;

#SECCION PRINCIPAL
location / {
root   /var/www/;
index  index.html index.htm;
}

#####NGINGX STATUS
location /nginx_status {
stub_status on;
access_log   off;
allow all;
}
error_page   404  /error.html;
}
}

Una vez creado el archivo de configuración de nuestro sitio de prueba, subimos el servicio y listo, al acceder por un navegador podremos ver nuestro sitio funcionando.

/etc/init.d/nginx start

En una próxima entrada estare hablando de configuraciones y optimizaciones especificas para este servidor.

Tags: , , , , , ,

Creando un rewrite en jBoss

junio 16, 2010 Publicado en Admin-tips, Configuración, InfraEstructura con 31 Comentarios


jboss rewriteJBoss viene con un modulo que le permite configurar rewrites, de la misma manera en que los hace Apache con su modulo mod_rewrite.

A continuación describo los pasos para configurar Jboss y crear una regla de rewrite para nuestro sitio web:

Configurar el perfil de jboss para que cargue el modulo de rewrite

Debemos modificar el archivo server.xml, para este caso lo vamos a hacer a nivel de <host>, el archivo se encuentra en:

<jboss>/server/default/deploy/jbossweb.sar/server.xml

y debemos agregar la siguiente linea a nivel de la seccion <host>:

<Valve className=”org.jboss.web.rewrite.RewriteValve” />

Crear el archivo que tendrá los rewrite

como es a nivel de <host> se debe colocar en la carpeta de configuracion del profile de jboss asi <jboss>/server/conf/[engine_name]/[host_name] :

mkdir -p /<jboss>/server/default/conf/jboss.web/localhost

para este caso engine_name es jboss.web y host_name es localhost.

Ahora creamos el archivo rewrite.properties en la carpeta que creamos en el paso anterior y configuramos nuestras reglas de rewrite.

RewriteCond  %{HTTP_HOST}       ^admin.tusitio.com$
RewriteCond  %{REQUEST_URI}     !^/js/(.*)$
RewriteCond  %{REQUEST_URI}     !^/css/(.*)$
RewriteRule  ^/(.*)$            /admin/$1  [L]

con la regla anterior estamos diciendo que todos los request que sean de admin.tusitio.com, que no pertenezcan a la carpeta /js o a la carpeta /css, los redireccione a la carpeta /admin, manteniendo el resto de la url, por ejemplo si hacemos el request admin.tusitio.com/estadisticas/index.html, lo que jboss realmente nos va a mostrar es el archivo admin.tusitio.com/admin/estadisticas/index.html
En otro post veremos con mas detalle la configuracion de rewrites

Tags: , , ,