server {
    listen 443;
    server_name skiamonitor.com;
    access_log /mnt/pd0/wwwlogs/skiamonitor.access.log;
    error_log /mnt/pd0/wwwlogs/skiamonitor.error.log;

    ssl on;
    ssl_certificate         /etc/nginx/ssl/skiamonitor_com.pem;
    ssl_certificate_key     /etc/nginx/ssl/skiamonitor_com.key;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'AES128+EECDH:AES128+EDH';
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;

    return 301 https://mon.skia.org$request_uri;
}

server {
    listen      80;
    server_name skiamonitor.com;
    return 301 https://mon.skia.org$request_uri;
}
