Nginx para Drupal | Archivo de configuración para el dominio.

Instrucciones
  • Una vez configurado tu servidor Nginx, deberás generar el archivo dentro de /etc/nginx/sites-available/MIDOMINIO.COM
  • También los archivos access.log y error.log en la ubicación correspondiente.
  • Este archivo está sacado desde la Página Oficial de Nginx  y modificado, para que esté actualizado con Drupal 10.
Código
server {
    server_name  lnd4all.com  www.lnd4all.com;
    root /var/www/lnd4all/web; ## <-- Your only path $
    access_log /srv/www/lnd4all.com/logs/access.log;
    error_log /srv/www/lnd4all.com/logs/error.log;


    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    # Very rarely should these ever be accessed outside of your lan
    location ~* \.(txt|log)$ {
        allow 192.168.0.0/16;
        deny all;
    }

    location ~ \..*/.*\.php$ {
        return 403;
    }

    location ~ ^/sites/.*/private/ {
        return 403;
    }

    # Block access to "hidden" files and directories whose names begin with a
    # period. This includes directories used by version control systems such
    # as Subversion or Git to store control files.
    location ~ (^|/)\. {
        return 403;
    }

    location / {
        # try_files $uri @rewrite; # For Drupal <= 6
        try_files $uri /index.php?$query_string; # For Drupal >= 7
    }

    location @rewrite {
        rewrite ^/(.*)$ /index.php?q=$1;
    }

    # In Drupal 8, we must also match new paths where the '.php' appears in the middle,
    # such as update.php/selection. The rule we use is strict, and only allows this pattern
    # with the update.php front controller.  This allows legacy path aliases in the form of
    # blog/index.php/legacy-path to continue to route to Drupal nodes. If you do not have
    # any paths like that, then you might prefer to use a laxer rule, such as:
    #   location ~ \.php(/|$) {
    # The laxer rule will continue to work if Drupal uses this new URL pattern with front
    # controllers other than update.php in a future release.
    location ~ '\.php$|^/update.php' {
        fastcgi_split_path_info ^(.+?\.php)(|/.*)$;
        #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        include fastcgi_params;
        include snippets/fastcgi-php.conf;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        fastcgi_intercept_errors on;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }

#SI TE FALLAN LOS ESTILOS AL PASAR DRUPAL A PRODUCCIÓN BORRA LAS LINEAS QUE ESTÁN ENTRE ESTA Y
    # Fighting with Styles? This little gem is amazing.
    # location ~ ^/sites/.*/files/imagecache/ { # For Drupal <= 6
    location ~ ^/sites/.*/files/styles/ { # For Drpal >= 7
        try_files $uri @rewrite;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
   }
#HASTA ESTA LINEA, VIGILA NO CARGARTE LA LLAVE DE CIERRE QUE ESTA DEBAJO.
}
Notas

Aunque en Local funcionó sin nigún fallo, cuando lo desplegué a Producción y actualicé a la versión más reciente de Drupal 10 y Drush 12, las líneas se rompieron todos los estilos, hasta que, investigando, encontré que el error era producido por las líneas que he comentado.

El archivo completo funcionaba sin problemas, antes de la última actualización de Drupal 10 y Drush.

Snippet relacionados