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;

    proxy_connect_timeout       5m;
    proxy_send_timeout          5m;
    proxy_read_timeout          5m;
    send_timeout                5m;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:8000;
    }
}

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