Instalar Servidor nginx en Debian Jessie

De WikiSalud
Saltar a: navegación, buscar

Contenido

nginx

NGINX (pronunciado en inglés “engine X”), es un servidor web HTTP de código abierto que incluye servicios de correo electrónico con acceso al Internet Message Protocol (IMAP) y al servidor Post Office Protocol (POP). Además, NGINX está listo para ser utilizado como un proxy inverso. En este modo, se utiliza para equilibrar la carga entre los servidores back-end, como también para ser utilizado como caché en un servidor back-end lento.


Su arquitectura, es diferente al modelo tradicional, de crear una instancia por cada request. NGINX procesa decenas de miles de conexiones simultáneas en un proceso compacto y con varios núcleos de CPU.


Además se compone de módulos que se incluyen en tiempo de compilación. Eso significa que el usuario descarga el código fuente y selecciona qué módulos quiere utilizar, haciendo más liviano que la competencia. Hay módulos para la conexión a clones de aplicaciones, balanceo de carga, servidor proxy, y otros. No hay módulo para PHP, ya que Nginx puede interpretar código PHP en sí mismo.

Características

Servidor de archivos estáticos, índices y autoindexado

Proxy inverso con opciones de caché

Balanceo de carga.

Tolerancia a fallos.

Soporte de HTTP y HTTP2 sobre SSL.

Soporte para FastCGI con opciones de caché.

Servidores virtuales basados en nombre y/o en dirección IP.

Streaming de archivos FLV y MP4

Soporte para autenticación.

Compatible con IPv6

Soporte para protocolo SPDY

Compresión gzip.

Habilitado para soportar más de 10.000 conexiones simultáneas

Instalación

Abrir una terminal y como usuario root ejecutar:

apt-get update

apt-get install nginx

Nos preguntara si deseamos continuar y respondemos Y

Comprobar la instalación

Abrimos nuestros navegador preferido y escribimos:

http://localhost

Ocultar la versión del Servidor

abrir una terminal y como usuario root escribimos:

nano /etc/nginx/nginx.conf

Vamos a modificar la siguiente línea, sólo debes descomentarla, es decir quitarle el símbolo de #:

cambia esto # server_tokens off por esto server_tokens off

guarda el archivo y luego reiniciaremos nuestros servidor web así:

service nginx restart


instalando mysql y php

abrir una terminal y como usuario root ejecutamos:

apt-get install mysql-server

Ahora procedemos a instalar php así:

apt-get install php5-fpm php5-mysql

luego editaremos el archivo de configuración de php así:

nano /etc/php5/fpm/php.ini

descomentar la linea (quitar el símbolo de #)

cgi.fix_pathinfo=0

date.timezone = America/El_Salvador

upload_max_filesize = 10M


guardar y reiniciar el servicio de php

systemctl restart php5-fpm

ahora procedemos a realizar unos cambios en el virtualhost por defecto

nano /etc/nginx/sites-available/default

server {
    listen 80 default_server;
    listen [::]:80 default_server;
 
    root /var/www/html;
    index index.php index.html index.htm index.nginx-debian.html;
 
    server_name your_server_ip;
 
    location / {
        try_files $uri $uri/ =404;
    }
 
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
    }
 
    location ~ /\.ht {
        deny all;
    }
}

luego guardar y salir del archivo


ahora probaremos para determinar si existe o no algún error así:

nginx -t

si es necesario recargar el servidor nginx ejecutamos uno de estos comandos:

systemctl reload nginx ó service nginx reload ó /etc/init.d/nginx reload

para verificar que nginx puede ejecutar archivos php crearemos info.php ejecutando el siguiente comando:

nano /var/www/html/info.php

<?php

 phpinfo();

?>

guardar y cerrar el archivo.

Finalmente desde nuestro navegador preferido ejecutaremos:

http://server_domain_or_IP/info.php

Si todo ha salido bien, deberíamos poder visualizar las diferentes directivas de php.

Finalmente eliminaremos nuestro archivo de información info.php así:

rm /var/www/html/info.php

Crear y Habilitar nuestro primer (VirtualHost)

Aunque el nombre de los archivos de configuración de cada virtualhost dentro del directorio (sites-available) puede establecerse como se desee, es una buena idea usar el nombre de los dominios y, además, hemos optado por agregar la extensión .conf para indicar que estos son archivos de configuración de cada uno de nuestros virtualhost que iremos creando.


para ello abriremos una terminal y como usuario root ejecutaremos:

cd /etc/nginx/sites-available

cp default prueba.salud.gob.sv.conf


ahora crearemos nuestro directorio donde estará alojado el proyecto

mkdir -p /var/www/sistemas/prueba

nano prueba.salud.gob.sv.conf

server {
	listen 127.0.0.1:80;
	server_name prueba.salud.gob.sv;
 
        index index.php index.html;
 
        charset utf-8;
 
        access_log /var/log/nginx/prueba.salud.gob.sv.access.log;
        error_log /var/log/nginx/prueba.salud.gob.sv.error.log debug;
 
	root /var/www/sistemas/prueba;
 
	location / {
		# First attempt to serve request as file, then
		# as directory, then fall back to displaying a 404.
		try_files $uri $uri/ =404;
	}
 
 
	location ~ \.php$ {
		include snippets/fastcgi-php.conf;
		fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
	}
 
	# deny access to .htaccess files, if Apache's document root
	location ~ /\.ht {
		deny all;
	}
}


guardar y cerrar el archivo


ahora crearemos nuestro enlace símbolo para activar nuestro sitio

ln -s /etc/nginx/sites-available/prueba.salud.gob.sv.conf /etc/nginx/sites-enabled/prueba.salud.gob.sv.conf

Finalmente agregaremos a nuestro archivo hosts la resolución del nombre respectiva así:

nano /etc/hosts

127.0.0.1 prueba.salud.gob.sv

guardar y cerrar el archivo

service nginx reload

Desactivar nuestro VirtualHost

Para deshabilitar nuestros directorios virtuales publicados debemos eliminar cada enlace símbolico que de encuentran almacenados en /etc/nginx/sites-enabled/

rm /etc/nginx/sites-enabled/prueba.salud.gob.sv.conf

Recuerda que ya sea que actives o desactives un directorio virtual debes reiniciar el servicio de nginx así:

symtemctl restart nginx

Referencias

https://www.nginx.com/

https://carlosazaustre.es/blog/como-instalar-un-servidor-https-en-nginx-desde-cero/

https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-virtual-hosts-server-blocks-on-ubuntu-12-04-lts--3

https://winginx.com/en/htaccess

https://geekflare.com/multiple-domains-on-one-server-with-apache-nginx/

https://geekytheory.com/como-configurar-multiples-dominios-y-subdominios-en-nginx/


Esta página fue modificada por última vez el  19 de noviembre de 2017, a las 11:56

Herramientas personales
Espacios de nombres

Variantes
Acciones
Navegación
Herramientas