Servidor web Nginx, instalación y ficheros de configuración
En el capítulo anterior vimos una introducción de este servidor web, como os prometí esta es la compilación de la última versión estable en un ubuntu y ficheros de configuración.
Instalación de Nginx
1- Descargamos el código fuente.
Vamos a la web oficial nginx.org/en/download
Siempre hay que descargar el software de las webs oficiales, otros intermediarios se aprovechan de los que realmente lo trabajan, para ponernos publicidad y multitud de descargas falsas.
NexoLinux ~/tmp # wget http://nginx.org/download/nginx-1.4.0.tar.gz
NexoLinux ~/tmp # tar xvfz nginx-1.4.0.tar.gz
NexoLinux ~/tmp # cd nginx-1.4.0
NexoLinux nginx-1.4.0 # ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
2- Precompilación
Como es habitual contamos con la ayuda para saber las opciones:
NexoLinux nginx-1.4.0 # ./configure --help
--help print this message
--prefix=PATH set installation prefix
--sbin-path=PATH set nginx binary pathname
--conf-path=PATH set nginx.conf pathname
--error-log-path=PATH set error log pathname
--pid-path=PATH set nginx.pid pathname
--lock-path=PATH set nginx.lock pathname
--user=USER set non-privileged user for
worker processes
--group=GROUP set non-privileged group for
worker processes
--builddir=DIR set build directory
--with-rtsig_module enable rtsig module
Estos módulos vienen por defecto:
- charset_module – HTTP Configurar carácteres
- gzip_module – HTTP Compresión con gzip
- ssi_module – Server side include
- auth_basic_module – HTTP Autenticación básica.
- autoindex_module – Auto indexación
- rewrite_module – HTTP Para reglas de reescritura (balanceo y redirecciones)
- proxy_module – HTTP módulo de proxy inverso.
- fastcgi_module – Soporte fastcgi
- memcached_module – Cacheo de memoria
3- Compilación
NexoLinux nginx-1.4.0 # ./configure
checking for OS
+ Linux 3.5.0-17-generic x86_64
checking for C compiler ... found
+ using GNU C compiler
+ gcc version: 4.7.2 (Ubuntu/Linaro 4.7.2-2ubuntu1)
checking for gcc -pipe switch ... found
checking for gcc builtin atomic operations ... found
checking for C99 variadic macros ... found
checking for gcc variadic macros ... found
A mi en este punto me dio los siguientes mensajes de error:
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.
./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.
Me faltaban unas cuantas librerias para usarlo con la compresión gzip y la reescritura de urls, como sólo lo quiero de ejemplo, lo compilé sin ellas así:
NexoLinux nginx-1.4.0 # ./configure --without-http_rewrite_module --without-http_gzip_module
Al final me confirmó la configuración y un resumen de como queda:
Configuration summary
+ PCRE library is not used
+ OpenSSL library is not used
+ using builtin md5 code
+ sha1 library is not found
+ zlib library is not used
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
En caso de necesitar las librerias, basta con instalarlas por separado, si nos pide la pcre, esta misma y pcre-devel necesario para la compilación.
Continuamos…
NexoLinux nginx-1.4.0 # make
NexoLinux nginx-1.4.0 # make install
NexoLinux nginx-1.4.0 # ls /usr/local/nginx/conf/
fastcgi.conf fastcgi_params.default mime.types nginx.conf.default uwsgi_params
fastcgi.conf.default koi-utf mime.types.default scgi_params uwsgi_params.default
fastcgi_params koi-win nginx.conf scgi_params.default win-utf
El binario para arrancarlo está en:
NexoLinux nginx-1.4.0 # /usr/local/nginx/sbin/nginx
NexoLinux nginx-1.4.0 # lsof -i | grep nginx
nginx 4892 root 6u IPv4 719252 0t0 TCP *:http (LISTEN)
nginx 4893 nobody 6u IPv4 719252 0t0 TCP *:http (LISTEN)
Nota: Otra consideración es que Nginx no viene con usuario de servicio para arrancarlo como hace Apache, y no podemos dejarlo arrancado como root nunca jamás, habría que crear un usuario y grupo para que gestione su servicio.
Ficheros de configuración Nginx
Estos son los ficheros en la ruta por defecto de la compilación, yo no le he puesto ninguna en particular, pero lo suyo habría sido que en lugar de /usr/local, sea en /opt
- Directorio de configuración: /usr/local/nginx/
- Directorio de configuración de virtualhost y SSL: /usr/local/nginx/conf.d/
- Directorio de logs: /var/log/nginx/
- Directorio raíz: /usr/share/nginx/html
- Fichero de configuración: /usr/local/nginx/nginx.conf
- Fichero de log de accesos: /var/log/nginx/access.log
- Fichero de log de error: /var/log/nginx/error.log
Fichero nginx.conf
Hay que configurar el worker processes según el número de núcleos en nuestro sistema. Si no estamos seguros basta con hacer un:
m3t4g4m3@NexoLinux ~ $ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 2
En el fichero nginx.conf por lo tanto pondremos esto:
worker_processes 2;
Para activar la compresión con gzip:
gzip on;
Lo siguiente es editar el /etc/nginx/conf.d/default.conf
Le configuramos la IP y el puerto TCP que escucha:
listen 202.54.1.1.1:80;
Set server name:
server_name www.nexolinux.com;
Una vez configuradas ambas cosas arrancamos!
root ~ # service nginx start
Verificamos en el mismo navegador que arranca.
Deja un comentario