Instalar Servidor nginx en Debian Jessie
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:
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://carlosazaustre.es/blog/como-instalar-un-servidor-https-en-nginx-desde-cero/
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 enero de 2017, a las 18:02