Nginx es un servidor web/proxy inverso ligero de alto rendimiento. El servicio es usado por una larga lista de sitios web conocidos cómo: WordPress, Netflix, Hulu, GitHub, Ohloh… etc
INSTALACIÓN (Servidor Web+PHP):
$ apt-get install nginx-extras php-fpm
Si todo ha ido bien ya deberíamos de tener el servicio nginx y php instalados aunque faltaría la configuración de estos. Para reiniciar estos servicios podremos usar los comandos:
$ service nginx stop|start|restart
$ systemctl restart php7.0-fpm
CONFIGURACIÓN NGINX:
Editaremos el fichero nano /etc/nginx/sites-available/default dejando lo siguiente:
server {
listen 80;
#listen [::]:80 default_server; #ESTA LÍNEA SE COMENTA
server_name DOMINIO.DDNS.NET; #ESTA LÍNEA SE COMPLETA CON EL DOMINIO
return 301 https://$server_name$request_uri; #ESTA LÍNEA FUERZA HTTPS
}
server {
# SSL configuration
listen 443 ssl default_server;
#listen [::]:443 ssl default_server; #ESTA LÍNEA SE COMENTA
server_name DOMINIO.DDNS.NET; #ESTA LÍNEA SE COMPLETA CON EL DOMINIO
# Note: You should disable gzip for SSL traffic.
# See: https://bugs.debian.org/773332
# Read up on ssl_ciphers to ensure a secure configuration.
# See: https://bugs.debian.org/765782
# Self signed certs generated by the ssl-cert package
# Don’t use them in a production server!
# include snippets/snakeoil.conf;
include snippets/ssl-DOMINIO.DDNS.NET.conf; #ESTA LÍNEA INDICA RUTA SSL
root /var/www/html/RUTA; #ESTA LÍNEA INDICA RUTA FICHEROS WEB
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html index.php; #ESTA LÍNEA INDICA EXTENSIONES VÁLIDAS
#server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
#autoindex off;
#try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php?$args;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# # With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php7.0-fpm:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
# deny access to .htaccess files, if Apache’s document root
# concurs with nginx’s one
location ~ /.well-known {
allow all;
}
location ~ /\.ht {
deny all;
}
}
Por otro lado editamos el fichero nano /etc/nginx/nginx.conf para descomentar la línea:
server_tokens off; #ESTA LÍNEA EVITA MOSTRAR LA VERSIÓN DEL NGINX A POSIBLES ATACANTES
Si se quieren ver los cambios de cada configuración se deben reiniciar el/los servicios mediante service nginx stop|start|restart y/o systemctl restart php7.0-fpm dependiendo de que configuración se edite.
Con esto ya deberíamos tener disponible el servicio Web con PHP, solo faltaría poner el contenido en la ruta configurada habitualmente /var/www/html ó /var/www/html/RUTA.