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

La actualidad más candente (20)

01intalacion de apache
01intalacion de apache01intalacion de apache
01intalacion de apache
 
Servidor Web Apache para Linux
Servidor Web Apache para LinuxServidor Web Apache para Linux
Servidor Web Apache para Linux
 
Servidor apache
Servidor apacheServidor apache
Servidor apache
 
ownCloud en Linux - Bilal Jebari
ownCloud en Linux - Bilal JebariownCloud en Linux - Bilal Jebari
ownCloud en Linux - Bilal Jebari
 
Introducción a Servidor HTTP Apache
Introducción a Servidor HTTP ApacheIntroducción a Servidor HTTP Apache
Introducción a Servidor HTTP Apache
 
Servidor VPN en Linux - Bilal Jebari
Servidor VPN en Linux - Bilal JebariServidor VPN en Linux - Bilal Jebari
Servidor VPN en Linux - Bilal Jebari
 
Servidor web apache
Servidor web apache Servidor web apache
Servidor web apache
 
Apache: instalación y configuración en Ubuntu Server y Windows Server
Apache: instalación y configuración en Ubuntu Server y Windows ServerApache: instalación y configuración en Ubuntu Server y Windows Server
Apache: instalación y configuración en Ubuntu Server y Windows Server
 
Protocol HTTP
Protocol HTTPProtocol HTTP
Protocol HTTP
 
Cherokee presentacion
Cherokee presentacionCherokee presentacion
Cherokee presentacion
 
1 Introduccion - Curso Cakephp y PostgreSql
1 Introduccion - Curso Cakephp y PostgreSql1 Introduccion - Curso Cakephp y PostgreSql
1 Introduccion - Curso Cakephp y PostgreSql
 
Apli t1 practicas_apache
Apli t1 practicas_apacheApli t1 practicas_apache
Apli t1 practicas_apache
 
Apache
Apache Apache
Apache
 
Apache
ApacheApache
Apache
 
Instalacion de oracle database 10g. en ubuntu
Instalacion de oracle database 10g. en ubuntuInstalacion de oracle database 10g. en ubuntu
Instalacion de oracle database 10g. en ubuntu
 
Configurar DNS con dnsmasq en CentOS6.5-Linux
Configurar DNS con dnsmasq en CentOS6.5-LinuxConfigurar DNS con dnsmasq en CentOS6.5-Linux
Configurar DNS con dnsmasq en CentOS6.5-Linux
 
Subir wordpress
Subir wordpressSubir wordpress
Subir wordpress
 
Proxy
ProxyProxy
Proxy
 
Apendice a
Apendice aApendice a
Apendice a
 
Servidores Web en GNU/Linux
Servidores Web en GNU/LinuxServidores Web en GNU/Linux
Servidores Web en GNU/Linux
 

Destacado (20)

ramyprocesador
ramyprocesadorramyprocesador
ramyprocesador
 
Capas del modelo osi
Capas del modelo osiCapas del modelo osi
Capas del modelo osi
 
Cansellor
CansellorCansellor
Cansellor
 
Actividad ii direccionamiento red ipv4
Actividad ii direccionamiento red ipv4Actividad ii direccionamiento red ipv4
Actividad ii direccionamiento red ipv4
 
Evidencias. diana p
Evidencias. diana pEvidencias. diana p
Evidencias. diana p
 
VALORES
VALORES VALORES
VALORES
 
pagina web HTml
pagina web HTmlpagina web HTml
pagina web HTml
 
Ventajas cmip
Ventajas cmipVentajas cmip
Ventajas cmip
 
PRESENTACION
PRESENTACIONPRESENTACION
PRESENTACION
 
Informatica (Redes Wi Fi)
Informatica (Redes Wi Fi)Informatica (Redes Wi Fi)
Informatica (Redes Wi Fi)
 
Ebsco
EbscoEbsco
Ebsco
 
RedesSociales
RedesSocialesRedesSociales
RedesSociales
 
Pescao frito
Pescao fritoPescao frito
Pescao frito
 
Nancy saeteros.
Nancy saeteros.Nancy saeteros.
Nancy saeteros.
 
Estilo impersonal
Estilo impersonalEstilo impersonal
Estilo impersonal
 
Julian CaamañO 11c
Julian CaamañO 11cJulian CaamañO 11c
Julian CaamañO 11c
 
Memoria ram
Memoria ramMemoria ram
Memoria ram
 
Definición de tic
Definición de ticDefinición de tic
Definición de tic
 
Trasmiciones 123
Trasmiciones 123Trasmiciones 123
Trasmiciones 123
 
Trabajo final grupo_102058_452
Trabajo final grupo_102058_452Trabajo final grupo_102058_452
Trabajo final grupo_102058_452
 

Similar a Guía completa de Nginx, el servidor web ligero y de alto rendimiento

Similar a Guía completa de Nginx, el servidor web ligero y de alto rendimiento (20)

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
 
Laboratorio Nº 9.1.pdf
Laboratorio Nº 9.1.pdfLaboratorio Nº 9.1.pdf
Laboratorio Nº 9.1.pdf
 
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
 
Daw02 tarea
Daw02 tareaDaw02 tarea
Daw02 tarea
 
Servidor HTTP Apache
Servidor HTTP ApacheServidor HTTP Apache
Servidor HTTP Apache
 
Cursowordpress 091124113422-phpapp02
Cursowordpress 091124113422-phpapp02Cursowordpress 091124113422-phpapp02
Cursowordpress 091124113422-phpapp02
 
Instalando una LAMP en debian 6
Instalando una LAMP en debian 6Instalando una LAMP en debian 6
Instalando una LAMP en debian 6
 
Carlos Pascual #WPvalladolid 2014
Carlos Pascual #WPvalladolid 2014Carlos Pascual #WPvalladolid 2014
Carlos Pascual #WPvalladolid 2014
 
Instalación y configuración de un sitio web en Wordpress 3.8
Instalación y configuración de un sitio web en Wordpress 3.8Instalación y configuración de un sitio web en Wordpress 3.8
Instalación y configuración de un sitio web en Wordpress 3.8
 
Pdf
PdfPdf
Pdf
 
Deploying Wordpress
Deploying WordpressDeploying Wordpress
Deploying Wordpress
 
Web apache en ubuntu 12,04
Web apache en ubuntu 12,04Web apache en ubuntu 12,04
Web apache en ubuntu 12,04
 

Guía completa de Nginx, el servidor web ligero y de alto rendimiento

  • 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/