nginx-nuances-2

Dicen que las crisis crean oportunidades. En el caso de Mínimo creó la oportunidad de dejar Apache para los proyectos y servidores con mas recursos y aprender algo de Nginx. Una joyita que combinada con un droplet barato de Digital Ocean, mantiene (casi siempre) en línea varios proyectos.

Acá el registro de las «nuances» del camino.

Índice

Agregar Access-Control-Allow-Origin en Nginx

A veces necesitamos servir cosas «raras» desde un servidor Nginx. ¿Y porqué no? Por ejemplo retocar nuestros response headers, (en el caso de nuestro proyecto Bibliopath) consumir archivos epub3 y opf desde un servidor Nginx.

Para eso necesitamos tener el servidor compilado con el módulo ngx_http_headers_module. Si es así, la configuración es sencilla. Alcanza con editar el archivo de configuración del dominio en cuestión dentro de la carpeta «sites-available» de Nginx (usualmente dentro de /etc) y agregar lo siguiente.

location ~* \.(eot|ttf|woff|woff2)$ {
    add_header Access-Control-Allow-Origin <origen>;
}

Las extensiones de archivos en nuestro caso eran diferentes, en el ejemplo son archivos de fuentes. El <origen> es el dominio desde el cual queremos consumir estos recursos. Cuidado con los wilds (*). El servidor lo va a agradecer, lo dice la experiencia propia.

Configurar un dominio seguro en Nginx Con Let’sEncrypt + Cloudflare

Primero que nada necesitamos crear los archivos del servidor.

mkdir -p /var/www/example.com
chown -R www-data:www-data /var/www/example.com
cd example.com
touch index.html

Edita este archivo index.html e ingresale un código html de prueba cualquiera.

Ahora vamos a crear los server blocks para cada dominio.

touch /etc/nginx/sites-available/example.com
server {
    root /var/www/example.com;
    index index.html index.htm index. nginx-debian.html;
    server_name example.com www.example.com;

    location / {
            try_files $uri $uri/ =404;
    }

    if ($host = 'www.example.com') {
        return 301 https://example.com$request_uri;
    }
}

Crear los enlaces simbólicos hacia la carpeta sites-enabled de Nginx.

ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Verificar que la configuración de Nginx está funcionando correctamente con nginx -t

Reiniciar el servidor y crear los certificados de Let’s Encrypt con certbot.

systemctl restart nginx #reiniciar el servidor
# crear certificados
certbot --nginx -d example.com -d www.example.com




user-avatar
Escribió para DevOps
Nicolás Erramuspe
Product developer @ Mínimo