Nexolinux
Sistemas Linux, servidores web, certificaciones, LPIC, Linux básico y profesional
Navigation
  • Home
  • Bash
  • LPIC
  • Noticias
  • Seguridad
  • Servicios
  • HowTo’s
You are here: Home › Nivel Avanzado › Servidor web Nginx, instalación y ficheros de configuración

Servidor web Nginx, instalación y ficheros de configuración

29 abril, 2013 | Filed under: Nivel Avanzado, Seguridad, Servidor Web and tagged with: proxy inverso, servidor dedicado, servidor proxy, servidor web, servidores

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

  1. Directorio de configuración: /usr/local/nginx/
  2. Directorio de configuración de virtualhost y SSL: /usr/local/nginx/conf.d/
  3. Directorio de logs: /var/log/nginx/
  4. Directorio raíz: /usr/share/nginx/html
  5. Fichero de configuración: /usr/local/nginx/nginx.conf
  6. Fichero de log de accesos: /var/log/nginx/access.log
  7. 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.

nginx

 

Comparte esto:

  • Facebook
  • Twitter
  • LinkedIn

Me gusta esto:

Me gusta Cargando...

4 Responses to "Servidor web Nginx, instalación y ficheros de configuración"

  1. Daniel P Z dice:
    25 marzo, 2014 a las 02:08

    Hola, muchas gracias por el tuto, esta muy bien explicado amigo, sigue así!, eres grande,, aqui va un par de inquietudes…

    1.- si es por decir 50 veces mejor que apache, xq no todos se pasan a apache?, no sería mejor que todas las webs cargasen 50 veces más rapido que antes?

    2.- estoy desarrollando una web que tendrá mucho trafico, asi que estoy deribando servicios en diferentes VPS, 1 para el servidor Web, otro para DNS, otro para la base de datos, y asi asi,, y se me ocurrio ocupar un VPS solo de 1GB de ram con 2 de CPU, y 50 GB de almacenamiento para alojar todas las imagenes y/o contenido estatico que no necesita ser procesado por ningun PHP ni nadad de esas cosas que hacen llamadas, mas que todo imagenes, sería factible utilizar solmanete el NGINX solo como servidor de imagenes…???

    3.- se que siempre hay hackers por ahi queriendo inchar los webos a los que tiene sus webs, y siempre tratan de tumbar sus servidores y romperles sus claves de acceso, habria una forma de asegurar al 100% el NGNIX para que sea 100000% seguro?

    Agradesco de antemano tus respuestas y tu tiempo por leer todo mi texto, seguiré navegando por tu web..
    Que tengas un gran día, y espero con ancias tu respuesta! 🙂

    Responder
    1. m3t4g4m3 dice:
      25 marzo, 2014 a las 02:27

      Buenas Daniel.

      1- ¿Le vas a decir tu a todas esas webs que lo hagan? porque muchas lo desconocerán o no lo necesitarán, piensa que hablamos de webs con un tráfico inmenso, en empresas profesionales, muchos servicios de hosting y webs con un tráfico bastante grande, te aseguro que lo usan más de lo que crees.

      2- No te se decir, tengo conocimientos de Nginx y experiencia pero como todo habría que probarlo y si no dar marcha atrás, como se hace a la hora de hacer cambios en un entorno ya productivo.

      3- Nada nunca está al 100% seguro, pero siempre hay una lista inmensa de mínimos para seguir, como subir versiones, verificar puertas traseras y a nivel de permisos, pero todo eso requiere estar al día y tener una monitorización contínua si te representa tanto problema, en la mayoría de los casos, con una seguridad aceptable y un buen backup, más tratándose de un VPS es más que suficiente, y no solo tener un backup, si no hacer pruebas para restaurarlo y que sean funcionales 🙂 Sobre todo te recomendaría que tenga seguridad la base de datos, el servidor web es fácilmente sustituible, pero la base de datos…es lo que da valor a cualquier web o empresa.

      Saludos!

      Responder
  2. JulioC dice:
    23 enero, 2014 a las 00:49

    Hola gracias por el aporte me sirivio mucho. Quisiera que me ayudaras , el problema es que a mi me funciona el localhost , el sever corre y todo normal , pero no lo puedo ver desde otra pc . apundando mi ip y el puerto, no se porque alguna idea?

    Responder
    1. m3t4g4m3 dice:
      25 enero, 2014 a las 03:57

      Me imagino que has probado el ping para ver si hay conectividad. Lo siguiente prueba a hacer telnet «puerto» si te sale una pantalla en la que puedes teclear algo es que hay un servicio levantado y el puerto está abierto, si no, o el servicio está parado o el puerto está cerrado desde fuera

      Responder

Deja un comentarioCancelar respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Categorías.

  • Bases de datos
  • Bash & Comandos
  • HowTo
  • Linux General
  • LPIC
  • LPIC-2
  • Nivel Avanzado
  • Nivel Basico
  • Noticias
  • Seguridad
  • Servicios
  • Servidor Web

Entradas y Páginas Populares

  • Comando fuser, Localizamos procesos que usan un fichero.
    Comando fuser, Localizamos procesos que usan un fichero.
  • Ejemplos usos mount y umount
    Ejemplos usos mount y umount
  • Ficheros de usuarios /etc/passwd y /etc/shadow
    Ficheros de usuarios /etc/passwd y /etc/shadow
  • Instruccion READ en Bash
    Instruccion READ en Bash
  • ¿Cómo cifra linux las contraseñas?
    ¿Cómo cifra linux las contraseñas?
  • Proxy Squid, control de accesos ACL (II)
    Proxy Squid, control de accesos ACL (II)
  • 15 dispositivos que funcionan con Linux
    15 dispositivos que funcionan con Linux
  • fichero fstab
    fichero fstab
  • HowTo:Ejecutar comando como otro usuario.
    HowTo:Ejecutar comando como otro usuario.
  • Comandos más usados para gestionar Iptables
    Comandos más usados para gestionar Iptables

© 2025 Nexolinux

Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrar publicidad relacionada con tus preferencias. cerrar Política de cookies
Privacidad y política de cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
GUARDAR Y ACEPTAR
 

Cargando comentarios...
 

    %d