En un artículo anterior expliqué cómo montar un servidor web con Apache, en este caso el tutorial será para lograr la misma funcionalidad con NGINX, otro servidor web de código abierto con bastante popularidad
Lo primero que necesitamos es una instalación limpia de Ubuntu 20.04 o Debian 10 e instalar el servidor web
sudo apt install nginx
Al introducir la dirección del servidor nos debería aparecer algo parecido a esto
Instalamos MariaDB de la siguiente forma
sudo apt install mariadb-server
Usaremos el siguiente comando para mejorar la seguridad del servicio MySQL
sudo mysql_secure_installation
Para instalar el soporte para PHP usaríamos los siguientes comandos
sudo apt install php-fpm php-mysql
Algunos módulos recomendados
sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip
Creamos un archivo de configuración en “/etc/nginx/sites-enabled” con un nombre que nos permita identificarlo con facilidad
sudo nano /etc/nginx/sites-enabled/frank.asgardius.company
El archivo quedaría parecido a este en Ubuntu 20.04
server {
listen 80;
server_name frank.asgardius.company sylvester.asgardius.company;
root /var/www/html;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
En Debian 10 quedaría así
server {
listen 80;
server_name frank.asgardius.company sylvester.asgardius.company;
root /var/www/html;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
WordPress funcionará bien con esta configuración, pero Nextcloud necesitará una configuración específica que se puede encontrar en su documentación oficial
Para obtener un certificado SSL gratuito con Let’s Encrypt necesitamos instalar los siguientes paquetes
sudo apt install certbot python3-certbot-nginx
Una vez instalado solicitamos el certificado con el siguiente comando y seguimos las instrucciones
sudo certbot --nginx
Los términos de Let’s Encrypt se pueden leer en este enlace
Referencias