octubre
2008
nginx, algunos tips.
Supongamos que tenemos una tienda, y queremos mostrar nuestros artículos de la forma:
http://www.example.org/producto/930 en lugar de http://www.example.org/producto.php?id=930
Entonces en la configuración de nginx, dentro del bloque de server { } añadimos lo siguiente:
rewrite ^/producto/([0-9]+)$ /producto.php?id=$1 last;
De tal forma que las peticiones hacia /producto/id se vayan al archivo php que manejará las peticiones. Las aplicaciones que se le pueden dar a esto son ilimitadas, se pueden pasar tantos parámetros como coincidan con las expresiones regulares a un archivo.
Veamos otro ejemplo, digamos que queremos hacer un sistema de blogs, donde el usuario sea mostrado como http://www.example.org/usuario, sería agregar a la configuración algo como:
server {
listen example.org:80;
server_name example.org;
location / {
root /var/www/users/;
index index.php;
if (!-e $request_filename) {
rewrite ^/(.*) /users.php?user=$1 last;
}
}
location ~ .php$ {
fastcgi_pass 127.0.0.1:8000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/users$fastcgi_script_name;
include fastcgi_params;
}
}
De esta forma, le decimos que si no existe el archivo /algo entonces lo mande a /users.php?user=algo, pero eso será transparente para quien nos visita ya que verá http://example.org/algo. Como se puede ver, es muy sencillo usar las expresiones regulares en nginx, por lo que se puede suplir perfectamente el módulo mod_rewrite de Apache por el de nginx.
(para ver la instalación de nginx puedes darle un vistazo a un post que escribí sobre el mismo).
5 comentarios ]
del.icio.us Estrella este post
Entradas relacionadas:
Han escrito 5 comentarios de «nginx, algunos tips.»
germangv
Miércoles 29 de octubre, 2008 11:47.-
a ver otra vez? pero mas despacio y en español XDD

linuxman
Miércoles 29 de octubre, 2008 16:09.-
Veo que Mexico Diario ya corre en nginx ¿Que tal? ¿Como corre la cosa esta?

andresn
Miércoles 29 de octubre, 2008 16:49.-
ea ea barajala mas despacio, esta muy interesante que nos compartas eso, pero mas despacio, chin necesito una lap para hacer experimentos

andresn
Miércoles 29 de octubre, 2008 16:49.-
nginx es en lugar de apache?, chin barajala mas despacio, oye toro de verdad ese tipo de articulos son muy buenos, pero danos mas info please

ToRo
Miércoles 29 de octubre, 2008 16:51.-
Apache WebServer es el servidor web mas usado en el mundo… es el servidor por excelencia, sin embargo con grandes cantidades de tráfico y manejo de información, se ha comprobado que no es la mejor opción.
Sitios con mucho tráfico o tienen muchos servidores o tienen aplicaciones alternas como lighttpd o nginx en este caso, tienen mejor rendimiento, etc. Al ser aplicaciones mas ligeras, tienen menos opciones pero cumplen bien para lo que fueron hechos… Apache es un monstruo, millones de líneas de código y muchos módulos y aplicaciones específicas.

