Archive for the ‘nginx’ tag
Default server in nginx
By default nginx accepts requests from any domain that points to the nginx server. If you want that only requests from domains that are configured in nginx be processed you cand add a default rule in nginx:
server {
listen 80 default;
server_name _;
deny all;
}
So, if you try to do a request from a domain not configured in nginx, it will return a 403 status (forbidden)
Soporte de Syslog para Nginx
Estos días tenía la necesidad de hacer que nginx mandase sus logs al syslog local.
Nginx no tiene soporte nativo para usar syslog. Puede escribir los logs o en fichero o mandarlos a un pipe.
Estuve bsucando y encontré un parche de la versión 0.6.31 que resuelve el problema. Aquí habla también un poco del parche.
A pesar de que en ese último link explica por encima como hacerlo, lo voy a contar yo también.
- Bajamos la versión 0.6.31 de nginx en http://sysoev.ru/nginx/nginx-0.6.31.tar.gz. Según el comentario de Marlon (el creador del parche) debería funcionar también con las versiones 0.6.30 y 0.6.29, y mirando los changelogs pienso que tambíen debería funcionar en la última que es la 0.6.32. Si alguien lo prueba que me lo diga.
- Descomprimimos:
# cd /usr/src/ # tar xvzf nginx-0.6.31.tar.gz
- Bajamos el parche:
# wget http://bugs.gentoo.org/attachment.cgi?id=153345 -O nginx_syslog.patch
- Parcheamos:
# patch -p0 < nginx_syslog.patch
- Compilamos e instalamos nginx:
# cd nginx-0.6.31 # ./configure --with-syslog # make # make install
CFLAGS="$CFLAGS -Werror"
por:
CFLAGS="$CFLAGS"
Esto únicamente hace que no se rompa la compilación al encontrar algun warning. En mi caso los warning que lanza la compilación se pueden ignorar tranquilamente, por lo que resulta seguro continuar con ellos.
Si todo ha ido bien deberíamos de tener funcionando nginx. Faltaría unicamente configurarlo y ponerlo en marcha. En el fichero de configuración no hace falta indicar nada para que mande correctamente los logs al syslog. Por defecto los manda a la facility daemon.
Yo lo he probado ya en servidores en producción y por el momento funciona estupendamente.
Desde aquí agradezco el esfuerzo a Marlon de Boer, que no he conseguido encontrar un blog suyo donde hacerlo.