Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
2,960
On Slideshare
0
From Embeds
0
Number of Embeds
12

Actions

Shares
Downloads
29
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Servidor Web NginxAntonio David Tejero GalánJuan 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ónNginx 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 WebActualmente ocupa el tercer puesto en el mercado siguiendo muy de cerca a IIS de Windows y creciendo.
  • 5. InstalaciónLa instalación del servidor web Nginx es bastante simple, ejecutamos los siguiente comandos para instalarlo y arrancarlo:~# aptitude install nginx~# /etc/init.d/gninx startSi tenemos otro servidor web en la máquina nos dará un fallo, solo tenemos que para el otro servidor web.
  • 6. Virtual HostingLo 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/wwwAhora 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 HostingContenido 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 HostingPor último borramos el enlace default de la ruta „/etc/nginx/sites-enabled/‟:~# rm /etc/nginx/sites-enabled/defaultY 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 HostingLo probamos entrando en www.example.com
  • 10. AliasCreamos la carpeta y el index.html~# mkdir /var/www/principal/pepe~# nano /var/www/principal/pepe/index.htmlPara 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. AliasLo probamos entrando en www.example.com/pepe
  • 12. Control de AccesoAhora 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 AccesoHe denegado el acceso de mi máquina Windows a la dirección www.example.com/pepe/
  • 14. Autenticación BásicaVamos 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ásicaSi intentamos acceder a www.example.com nos solicitará el usuario y contraseña.
  • 16. FastCgi en NginxPara 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 NginxEl siguiente paso será descomentar la siguiente línea del fichero “/etc/php5/fpm/php.ini”:cgi.fix_pathinfo=0Una vez descomentada la línea reiniciamos el servicio para aplicar los cambios realizados .~# service php5-fpm restart
  • 18. FastCgi en NginxCreamos 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 NginxEl 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 NginxContenido 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 NginxPor ú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/defaultAhora solo tenemos que reiniciar Nginx:~# service nginx restart
  • 22. FastCgi en NginxPrueba 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ónLa 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ónLa 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/