SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
Servidor Web Nginx

Antonio David Tejero Galán
Juan Antonio Beato Quiñones
Índice
•   Introducción
•   Comparativa de Servidores Web
•   Instalación
•   Virtual Hosting
•   Alias
•   Control de Acceso
•   Autenticación Básica
•   FastCgi en Nginx
•   Comparativa: Apache2 vs Nginx (Memoria)
•   Comparativa: Apache2 vs Nginx (Rendimiento)
•   Conclusión
•   Bibliografía
Introducción
Nginx es un servidor web/proxy inverso ligero de alto
  rendimiento.

Es software libre y de código abierto con licencia BSD
  simplificada. Es multiplataforma por lo que puede instalarse
  en Linux, Solarios, BSD, Mac OS X, Windows etc…

Algunos de los sitios conocidos que utilizan Nginx son
  Wordpress, GitHub, SourceForge, Badoo y partes de
  Facebook.
Comparativa de Servidores Web

Actualmente ocupa el tercer puesto en el mercado siguiendo
  muy de cerca a IIS de Windows y creciendo.
Instalación
La instalación del servidor web Nginx es bastante simple,
  ejecutamos los siguiente comandos para instalarlo y
  arrancarlo:

~# aptitude install nginx
~# /etc/init.d/gninx start


Si tenemos otro servidor web en la máquina nos dará un fallo,
   solo tenemos que para el otro servidor web.
Virtual Hosting
Lo primero que hacemos es crear el directorio y el fichero
  html:

~# mkdir /var/www/principal
~# nano /var/www/principal
~#chwon –R www-data:www-data /var/www


Ahora vamos a „/etc/nginx/sites-available‟ y creamos un nuevo
  fichero, el mío se llamará „principal‟

~# nano /etc/nginx/sites-availables/principal
Virtual Hosting
Contenido del fichero „principal‟:

server {
  server_name www.example.com;
  access_log /var/log/nginx/www.log;

    location / {
      root /var/www/principal;
      index index.htm index.html;
    }
}
Virtual Hosting
Por último borramos el enlace            default   de   la      ruta
  „/etc/nginx/sites-enabled/‟:

~# rm /etc/nginx/sites-enabled/default


Y agregamos el enlace al nuevo virtual hosting y reiniciamos:

~# ln -s /etc/nginx/sites-available/principal
  /etc/nginx/sites-enabled/principal

~#   /etc/init.d/nginx restart
Virtual Hosting
Lo probamos entrando en www.example.com
Alias
Creamos la carpeta y el index.html

~# mkdir /var/www/principal/pepe
~# nano /var/www/principal/pepe/index.html


Para agregar un Alias añadimos lo siguiente al archivo del host
  creado con anterioridad:
location /pepe {
    alias /var/www/principal/pepe/;
    index index.htm index.html;
  }
Alias
Lo probamos entrando en www.example.com/pepe
Control de Acceso
Ahora vamos con el control de acceso a nuestro virtual host,
  en este aspecto Nginx es muy similar a Apache2.
Dentro de la directiva location ponemos las líneas para
  permitir o denegar el acceso a una red, una máquina, etc…

location /pepe {
    alias /var/www/principal/pepe/;
    index index.htm index.html;
    deny 192.168.2.2;
    allow all;
  }
Control de Acceso
He denegado el acceso de mi máquina Windows a la dirección
  www.example.com/pepe/
Autenticación Básica
Vamos con la autenticación contra el servidor web para
  obtener acceso a un host virtual, para esto debemos agregar
  las siguiente líneas en “location” al fichero de nuestro host
  virtual.
  auth_basic         "Restricted";
  auth_basic_user_file .htpasswd;


Ahora solo tenemos que crear el fichero con el usuario y
  contraseña con el siguiente comando:

~# htpasswd -d -c /etc/nginx/.htpasswd
  profesor
Autenticación Básica
Si intentamos acceder a www.example.com nos solicitará el
   usuario y contraseña.
FastCgi en Nginx
Para probar la ejecución de scripts vamos a instalar FastCgi en
  Nginx y probamos instalando Wordpress en un virtual
  hosting que hemos creado.
Para instalar FastCgi en el servidor web tenemos que instalar
  el paquete Php5-fpm.
También tenemos que instalar mysql-server para la base de
  datos que utilizaremos para Wordpress.

~# aptitude install mysql-server
~# aptitude install php5-fpm
~# apt-get install php5-mysql
FastCgi en Nginx
El siguiente paso será descomentar la siguiente línea del
  fichero “/etc/php5/fpm/php.ini”:

cgi.fix_pathinfo=0


Una vez descomentada la línea reiniciamos el servicio para
  aplicar los cambios realizados .

~# service php5-fpm restart
FastCgi en Nginx
Creamos la base de datos y el usuario para Wordpress con
  permisos para todas las tablas de la base de datos
  wordpress.
Lo siguiente será renombrar wp-config-sample.php como wp-
  config.php y modificar los parámetros:

define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpressuser');
define('DB_PASSWORD', 'usuario');
FastCgi en Nginx
El siguiente paso será copiar el contenido de wordpress al
  directorio deseado y dar los permisos pertinentes:
~# cp -r wordpress/* /var/www/
~# chown www-data:www-data /var/www/


Copiamos el fichero /etc/nginx/sites-availables/default con el
  nombre “wordpress” y modificamos el contenido por el
  descrito:
~# cp /etc/nginx/sites-available/default
  /etc/nginx/sites-available/wordpress
~# nano /etc/nginx/sites-available/wordpress
FastCgi en Nginx
Contenido del fichero /etc/nginx/sites-availables/wordpress:

server {
        listen   80;
        root /var/www;
        index index.php index.html index.htm;
        server_name www.tejero.com;
location ~ .php$ {
                #fastcgi_pass 127.0.0.1:9000;
                # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
                 }
}
FastCgi en Nginx
Por último tenemos que crear el enlace en /etc/nginx/sites-
  enabled y borramos el enlace a default:


~# ln -s /etc/nginx/sites-available/wordpress
  /etc/nginx/sites-enabled/wordpress
~# rm /etc/nginx/sites-enabled/default


Ahora solo tenemos que reiniciar Nginx:

~# service nginx restart
FastCgi en Nginx
Prueba de funcionamiento, para probar el correcto
   funcionamiento      entramos   en    la     dirección
   http://www.tejero.com/ y comenzará la instalación de
   Wordpress.
Comparativa: Apache2 vs Nginx (Memoria)

Realizamos la medición con 500 peticiones y 2 concurrentes
  en Apache2.
Comparativa: Apache2 vs Nginx (Memoria)

Realizamos la medición con 500 peticiones y 2 concurrentes
  en Nginx.
Comparativa: Apache2 vs Nginx (Rendimiento)

Realizamos la medición con 500 peticiones y 2 concurrentes
  en Nginx y en Apache2.
Conclusión
La conclusión a la que hemos llegado realizando el estudio de
  este servidor es que es una muy buena alternativa al
  servidor web Apache2.
Después de realizar las comparaciones y de leer sobre este
  servidor web hemos llegado a la conclusión de que requiere
  menos consumo de memoria que Apache2.
En cuanto al rendimiento, como podemos ver en la gráfica
  anterior que tiene un mejor rendimiento que Apache.
Al contrario que Apache2, Nginx es mucho mas eficiente
  cuanto mayor sea el número de conexiones concurrentes.
Conclusión
La configuración es similar a la de Apache2 en varios aspectos
  y el rendimiento es superior por lo que es una buena opción
  a tener en cuenta por las empresas a la hora de montar su
  propio servidor web.
Bibliografía
• http://wiki.nginx.org
• http://es.wikipedia.org/wiki/Nginx
• http://www.howtoforge.com/installing-php-
  5.3-nginx-and-php-fpm-on-ubuntu-debian
• http://alpiedelared.wordpress.com/2012/04
  /30/enstalar-y-configurar-nginx-php5-and-
  mysql-en-deb-ian/

Más contenido relacionado

La actualidad más candente

INDICES EN SQL SERVER
INDICES EN SQL SERVERINDICES EN SQL SERVER
INDICES EN SQL SERVERDarwin Durand
 
BASES DE DATOS
BASES DE DATOSBASES DE DATOS
BASES DE DATOSfas_sakura
 
Como instalar Prolog en Windows
Como instalar Prolog en WindowsComo instalar Prolog en Windows
Como instalar Prolog en WindowsCesarMartinez474
 
Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.Ana Castro
 
Estructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesEstructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesJosé Antonio Sandoval Acosta
 
El sistema operativo reactOs
El sistema operativo reactOsEl sistema operativo reactOs
El sistema operativo reactOsHelmilpa
 
Algoritmos intercalación
Algoritmos intercalaciónAlgoritmos intercalación
Algoritmos intercalaciónPaul Arévalo
 
Requerimientos de instalación
Requerimientos de instalaciónRequerimientos de instalación
Requerimientos de instalaciónPrincezitha Ruiz
 
NoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesNoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesAndrés Londoño
 
Presentacion de Visual Basic
Presentacion de Visual BasicPresentacion de Visual Basic
Presentacion de Visual BasicFrancheska Parras
 
Arquitectura e implementación de PostgreSQL 9.3
Arquitectura e implementación de PostgreSQL 9.3Arquitectura e implementación de PostgreSQL 9.3
Arquitectura e implementación de PostgreSQL 9.3Bryan Rodríguez
 
Cuadro comparativo sobre los tipos de sistemas operativos.
Cuadro comparativo sobre los tipos de sistemas operativos.Cuadro comparativo sobre los tipos de sistemas operativos.
Cuadro comparativo sobre los tipos de sistemas operativos.jorm1297
 
Introduccion bases de datos
Introduccion bases de datosIntroduccion bases de datos
Introduccion bases de datosUTN
 

La actualidad más candente (20)

NoSQL: la siguiente generación de Base de Datos
NoSQL: la siguiente generación de Base de DatosNoSQL: la siguiente generación de Base de Datos
NoSQL: la siguiente generación de Base de Datos
 
INDICES EN SQL SERVER
INDICES EN SQL SERVERINDICES EN SQL SERVER
INDICES EN SQL SERVER
 
BASES DE DATOS
BASES DE DATOSBASES DE DATOS
BASES DE DATOS
 
Árboles Multicamino, B y B+
Árboles Multicamino, B y B+Árboles Multicamino, B y B+
Árboles Multicamino, B y B+
 
Como instalar Prolog en Windows
Como instalar Prolog en WindowsComo instalar Prolog en Windows
Como instalar Prolog en Windows
 
Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.Función Hash: metodos de división y de medio Cuadrado.
Función Hash: metodos de división y de medio Cuadrado.
 
Estructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesEstructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras Lineales
 
Vistas
VistasVistas
Vistas
 
El sistema operativo reactOs
El sistema operativo reactOsEl sistema operativo reactOs
El sistema operativo reactOs
 
Algoritmos intercalación
Algoritmos intercalaciónAlgoritmos intercalación
Algoritmos intercalación
 
Requerimientos de instalación
Requerimientos de instalaciónRequerimientos de instalación
Requerimientos de instalación
 
NoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesNoSQL bases de datos no relacionales
NoSQL bases de datos no relacionales
 
Virtual Box
Virtual BoxVirtual Box
Virtual Box
 
Presentacion de Visual Basic
Presentacion de Visual BasicPresentacion de Visual Basic
Presentacion de Visual Basic
 
Arquitectura e implementación de PostgreSQL 9.3
Arquitectura e implementación de PostgreSQL 9.3Arquitectura e implementación de PostgreSQL 9.3
Arquitectura e implementación de PostgreSQL 9.3
 
Cuadro comparativo sobre los tipos de sistemas operativos.
Cuadro comparativo sobre los tipos de sistemas operativos.Cuadro comparativo sobre los tipos de sistemas operativos.
Cuadro comparativo sobre los tipos de sistemas operativos.
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Introduccion bases de datos
Introduccion bases de datosIntroduccion bases de datos
Introduccion bases de datos
 
Mapa conceptual BD
Mapa conceptual BDMapa conceptual BD
Mapa conceptual BD
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 

Similar a Nginx (20)

Servidor apache
Servidor apacheServidor apache
Servidor apache
 
Curso de php
Curso de phpCurso de php
Curso de php
 
Red t3 practica1_apachecms
Red t3 practica1_apachecmsRed t3 practica1_apachecms
Red t3 practica1_apachecms
 
Servidorweb casero
Servidorweb caseroServidorweb casero
Servidorweb casero
 
Apache
ApacheApache
Apache
 
Apli t1 practicas_apache
Apli t1 practicas_apacheApli t1 practicas_apache
Apli t1 practicas_apache
 
Apache
ApacheApache
Apache
 
Laboratorio Nº 9.1.pdf
Laboratorio Nº 9.1.pdfLaboratorio Nº 9.1.pdf
Laboratorio Nº 9.1.pdf
 
Servidores Web en GNU/Linux
Servidores Web en GNU/LinuxServidores Web en GNU/Linux
Servidores Web en GNU/Linux
 
Cherokee
CherokeeCherokee
Cherokee
 
Instalación de 2 CMS: Wordpress y Drupal
Instalación de 2 CMS: Wordpress y DrupalInstalación de 2 CMS: Wordpress y Drupal
Instalación de 2 CMS: Wordpress y Drupal
 
Php apéndice
Php   apéndicePhp   apéndice
Php apéndice
 
Gestion de nubes de servidores
Gestion de nubes de servidoresGestion de nubes de servidores
Gestion de nubes de servidores
 
Gestion de nubes d
Gestion de nubes dGestion de nubes d
Gestion de nubes d
 
Vps local virtualbox
Vps local virtualboxVps local virtualbox
Vps local virtualbox
 
Servidorweb
ServidorwebServidorweb
Servidorweb
 
Cherokee presentacion
Cherokee presentacionCherokee presentacion
Cherokee presentacion
 
Daw02 tarea
Daw02 tareaDaw02 tarea
Daw02 tarea
 
Apendice a
Apendice aApendice a
Apendice a
 
Servidor web Apache
Servidor web ApacheServidor web Apache
Servidor web Apache
 

Nginx

  • 1. Servidor Web Nginx Antonio David Tejero Galán Juan Antonio Beato Quiñones
  • 2. Índice • Introducción • Comparativa de Servidores Web • Instalación • Virtual Hosting • Alias • Control de Acceso • Autenticación Básica • FastCgi en Nginx • Comparativa: Apache2 vs Nginx (Memoria) • Comparativa: Apache2 vs Nginx (Rendimiento) • Conclusión • Bibliografía
  • 3. Introducción Nginx es un servidor web/proxy inverso ligero de alto rendimiento. Es software libre y de código abierto con licencia BSD simplificada. Es multiplataforma por lo que puede instalarse en Linux, Solarios, BSD, Mac OS X, Windows etc… Algunos de los sitios conocidos que utilizan Nginx son Wordpress, GitHub, SourceForge, Badoo y partes de Facebook.
  • 4. Comparativa de Servidores Web Actualmente ocupa el tercer puesto en el mercado siguiendo muy de cerca a IIS de Windows y creciendo.
  • 5. Instalación La instalación del servidor web Nginx es bastante simple, ejecutamos los siguiente comandos para instalarlo y arrancarlo: ~# aptitude install nginx ~# /etc/init.d/gninx start Si tenemos otro servidor web en la máquina nos dará un fallo, solo tenemos que para el otro servidor web.
  • 6. Virtual Hosting Lo primero que hacemos es crear el directorio y el fichero html: ~# mkdir /var/www/principal ~# nano /var/www/principal ~#chwon –R www-data:www-data /var/www Ahora vamos a „/etc/nginx/sites-available‟ y creamos un nuevo fichero, el mío se llamará „principal‟ ~# nano /etc/nginx/sites-availables/principal
  • 7. Virtual Hosting Contenido del fichero „principal‟: server { server_name www.example.com; access_log /var/log/nginx/www.log; location / { root /var/www/principal; index index.htm index.html; } }
  • 8. Virtual Hosting Por último borramos el enlace default de la ruta „/etc/nginx/sites-enabled/‟: ~# rm /etc/nginx/sites-enabled/default Y agregamos el enlace al nuevo virtual hosting y reiniciamos: ~# ln -s /etc/nginx/sites-available/principal /etc/nginx/sites-enabled/principal ~# /etc/init.d/nginx restart
  • 9. Virtual Hosting Lo probamos entrando en www.example.com
  • 10. Alias Creamos la carpeta y el index.html ~# mkdir /var/www/principal/pepe ~# nano /var/www/principal/pepe/index.html Para agregar un Alias añadimos lo siguiente al archivo del host creado con anterioridad: location /pepe { alias /var/www/principal/pepe/; index index.htm index.html; }
  • 11. Alias Lo probamos entrando en www.example.com/pepe
  • 12. Control de Acceso Ahora vamos con el control de acceso a nuestro virtual host, en este aspecto Nginx es muy similar a Apache2. Dentro de la directiva location ponemos las líneas para permitir o denegar el acceso a una red, una máquina, etc… location /pepe { alias /var/www/principal/pepe/; index index.htm index.html; deny 192.168.2.2; allow all; }
  • 13. Control de Acceso He denegado el acceso de mi máquina Windows a la dirección www.example.com/pepe/
  • 14. Autenticación Básica Vamos con la autenticación contra el servidor web para obtener acceso a un host virtual, para esto debemos agregar las siguiente líneas en “location” al fichero de nuestro host virtual. auth_basic "Restricted"; auth_basic_user_file .htpasswd; Ahora solo tenemos que crear el fichero con el usuario y contraseña con el siguiente comando: ~# htpasswd -d -c /etc/nginx/.htpasswd profesor
  • 15. Autenticación Básica Si intentamos acceder a www.example.com nos solicitará el usuario y contraseña.
  • 16. FastCgi en Nginx Para probar la ejecución de scripts vamos a instalar FastCgi en Nginx y probamos instalando Wordpress en un virtual hosting que hemos creado. Para instalar FastCgi en el servidor web tenemos que instalar el paquete Php5-fpm. También tenemos que instalar mysql-server para la base de datos que utilizaremos para Wordpress. ~# aptitude install mysql-server ~# aptitude install php5-fpm ~# apt-get install php5-mysql
  • 17. FastCgi en Nginx El siguiente paso será descomentar la siguiente línea del fichero “/etc/php5/fpm/php.ini”: cgi.fix_pathinfo=0 Una vez descomentada la línea reiniciamos el servicio para aplicar los cambios realizados . ~# service php5-fpm restart
  • 18. FastCgi en Nginx Creamos la base de datos y el usuario para Wordpress con permisos para todas las tablas de la base de datos wordpress. Lo siguiente será renombrar wp-config-sample.php como wp- config.php y modificar los parámetros: define('DB_NAME', 'wordpress'); define('DB_USER', 'wordpressuser'); define('DB_PASSWORD', 'usuario');
  • 19. FastCgi en Nginx El siguiente paso será copiar el contenido de wordpress al directorio deseado y dar los permisos pertinentes: ~# cp -r wordpress/* /var/www/ ~# chown www-data:www-data /var/www/ Copiamos el fichero /etc/nginx/sites-availables/default con el nombre “wordpress” y modificamos el contenido por el descrito: ~# cp /etc/nginx/sites-available/default /etc/nginx/sites-available/wordpress ~# nano /etc/nginx/sites-available/wordpress
  • 20. FastCgi en Nginx Contenido del fichero /etc/nginx/sites-availables/wordpress: server { listen 80; root /var/www; index index.php index.html index.htm; server_name www.tejero.com; location ~ .php$ { #fastcgi_pass 127.0.0.1:9000; # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }
  • 21. FastCgi en Nginx Por último tenemos que crear el enlace en /etc/nginx/sites- enabled y borramos el enlace a default: ~# ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/wordpress ~# rm /etc/nginx/sites-enabled/default Ahora solo tenemos que reiniciar Nginx: ~# service nginx restart
  • 22. FastCgi en Nginx Prueba de funcionamiento, para probar el correcto funcionamiento entramos en la dirección http://www.tejero.com/ y comenzará la instalación de Wordpress.
  • 23. Comparativa: Apache2 vs Nginx (Memoria) Realizamos la medición con 500 peticiones y 2 concurrentes en Apache2.
  • 24. Comparativa: Apache2 vs Nginx (Memoria) Realizamos la medición con 500 peticiones y 2 concurrentes en Nginx.
  • 25. Comparativa: Apache2 vs Nginx (Rendimiento) Realizamos la medición con 500 peticiones y 2 concurrentes en Nginx y en Apache2.
  • 26. Conclusión La conclusión a la que hemos llegado realizando el estudio de este servidor es que es una muy buena alternativa al servidor web Apache2. Después de realizar las comparaciones y de leer sobre este servidor web hemos llegado a la conclusión de que requiere menos consumo de memoria que Apache2. En cuanto al rendimiento, como podemos ver en la gráfica anterior que tiene un mejor rendimiento que Apache. Al contrario que Apache2, Nginx es mucho mas eficiente cuanto mayor sea el número de conexiones concurrentes.
  • 27. Conclusión La configuración es similar a la de Apache2 en varios aspectos y el rendimiento es superior por lo que es una buena opción a tener en cuenta por las empresas a la hora de montar su propio servidor web.
  • 28. Bibliografía • http://wiki.nginx.org • http://es.wikipedia.org/wiki/Nginx • http://www.howtoforge.com/installing-php- 5.3-nginx-and-php-fpm-on-ubuntu-debian • http://alpiedelared.wordpress.com/2012/04 /30/enstalar-y-configurar-nginx-php5-and- mysql-en-deb-ian/