Configuración de Nginx
.. 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.