Skip to content

📌 Nginx

1. Actualiza los paquetes del sistema

 apt update
 apt upgrade

2. Instala Nginx

 apt install nginx

3. Crear els directoris necessaris per gestionar llocs web: sites-available i sites-enabled.

 mkdir -p /etc/nginx/sites-available
 mkdir -p /etc/nginx/sites-enabled

4. Generar un certificat autofirmat amb RSA (2048 bits).

 cd /etc/nginx/sites-available
 openssl req -x509 -nodes -days 10 -newkey rsa:2048 -keyout private.key -out public.crt

5. Crear l'arxiu de configuració de Nginx per Laravel a sites-available.

 nano /etc/nginx/sites-available/laravel.conf
5.1. Contingut del fitxer de configuració de Nginx.
# Redirección de HTTP a HTTPS
server {
    listen 80;
    server_name localhost;

    # Redirigir todas las peticiones HTTP a HTTPS
    return 301 https://$host$request_uri;
}

# Configuración para HTTPS
server {
    listen 443 ssl;
    server_name localhost;

    # Ubicacion de los certificados SSL
    ssl_certificate /etc/nginx/sites-available/public.crt;
    ssl_certificate_key /etc/nginx/sites-available/private.key;

    # Configuracion de seguridad SSL
    ssl_protocols TLSv1.2 TLSv1.3;

    #Definim el directori del projecte Laravel
    root /var/www/html/streaming-laravel/public;

    index index.php index.html index.htm;

    # Habilitar la gestió d'errors
    error_log  /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;

    location /admin {
        allow all;
    if ($host = "edt.laravel-streaming") {
            return 403;
    }
    }

    # Configurar el maneig de les sol·licituds PHP
    location / {
    if ($host = "edt.streaming-laravel.admin") {
        return 301 /admin;
    }
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
    include fastcgi_params;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }


    # Prevenir l'accés a fitxers sensibles
    location ~ /\.ht {
        deny all;
    }

    # Control de errores
    error_page 404 /404.html;
    location = /404.html {
        root /var/www/html/streaming-laravel/public;
        internal;
    }

    error_page 403 /403.html;
    location = /403.html {
        root /var/www/html/streaming-laravel/public;
        internal;
    }

    error_page 401 /401.html;
    location = /401.html {
        root /var/www/html/streaming-laravel/public;
        internal;
    }

    error_page 500 502 503 /500.html;
    location = /500.html {
        root /var/www/html/streaming-laravel/public;
        internal;
    }

    error_page 501 /501.html;
    location = /501.html {
        root /var/www/html/streaming-laravel/public;
        internal;
    }

}

6. Reiniciar Nginx per aplicar els canvis

 systemctl restart nginx 

7. Crear un enllaç simbòlic a sites-enabled per activar la configuració.

 ln -s /etc/nginx/sites-available/laravel.conf /etc/nginx/sites-enabled/

8. Modificar l'arxiu de configuració principal de Nginx per incloure els arxius de sites-enabled.

 nano /etc/nginx/nginx.conf
(Assegura't d’afegir aquesta línia dins del bloc http si no hi és:)

 include /etc/nginx/sites-enabled/*;