Configuración de Nginx

📆 7 de febrero de 2014

.. figure:: /images/1391776301.png

Esta es la configuración que estoy utilizando actualmente en el blog.

Como puedes ver hay dos directivas server, la primera es una redirección de bellidoj.com a www.bellidoj.com. Antes estaba todo junto en la misma linea de server_name pero en varios foros advierten de que utilizar dos directivas server es más eficiente.

Dentro de la segunda directiva server hay tres bloques location. El primero en / lo que hace es manipular las peticiones para que no sea necesario añadir index.php a las urls de los proyectos basados en laravel. El segundo se encarga de dirigir las peticiones de archivos .php al servidor de FastCGI. El tercero lo que hace es fijar un tiempo de caché para determinado tipo de archivos, para que no sea necesario servirlos de nuevo si el visitante ya los tiene almacenados en la caché local. Es una configuración muy sencilla que se puede afinar para cada uno de los tipos de archivo. Por ejemplo, un archivo .css o .js puede cambiar más que una imagen, por lo que puede ser preferible que tenga un tiempo de vida menor en caché.

 

        server {
            listen 80;
            server_name bellidoj.com;
            return 301 $scheme://www.bellidoj.com/$request_uri;
        }
       
        server {
            listen 80;
            server_name  www.bellidoj.com;
            root /path/to/www/;
            
            location / {
                try_files $uri $uri/ /index.php?$query_string;
            }

            index index.php index.html;
      
            # pass the PHP scripts to FastCGI server
            # listening on /var/run/php5-fpm.sock

            location ~ \\.php$ {
                fastcgi_split_path_info ^(.+\\.php)(/.+)$;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
            }

            location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
                expires 365d;
            }
        }

Como todo es mejorable si tenéis alguna sugerencia espero vuestros comentarios.

Actualización

El blog ya no utiliza laravel así que la configuración de nginx ha cambiado. Ahora, al utlizar hugo como motor de blogs, solo se sirven contenidos estáticos, lo que facilita mucho la configuración.

        server {
            listen 80;
            server_name bellidoj.com;
            return 301 $scheme://www.bellidoj.com/$request_uri;
        }
       
        server {
            listen 80;
            server_name  www.bellidoj.com;
            root /path/to/www/;
            
            index index.html;
            location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
                expires 365d;
            }
        }

Un saludo.

Puedes compartir el enlace si te gustó: Configuración de Nginx

También puedes dejarme un mensaje:





(Esto funciona gracias a Un-static Forms)